我正在尝试根据用于连接到我的服务器的 url 动态读取 SSL 证书的位置。我尝试了几种不同的方法,但似乎都不起作用。目前我的配置如下所示
UseCanonicalName Off
listen 443
<VirtualHost *:443>
ServerName example
ServerAlias *
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/%0/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/%0/privkey.pem
VirtualDocumentRoot /var/www/vhosts/%-2/%-3+/public
</VirtualHost>
这里的问题是,当我启动 apache 时,出现错误,提示找不到 ssl 证书的文件位置,该证书声明“/etc/letsencrypt/live/%0/cert.pem”
所以看起来 %0 没有被 url 替换。
编辑:当我手动仅用 url 替换 %0 时,则表示 url 具有有效的 SSL
来自文档 https://httpd.apache.org/docs/current/vhosts/mass.html:
变量 %0 引用请求的服务器名称,如 Host: 标头中所示。
Host 标头是 HTTP 请求的一部分。 HTTP 请求仅在 TLS 握手成功后才可用。这次握手需要证书。因此,%0
不能用于指定证书的路径。
我怀疑任何其他变量都可以用于此目的,因为证书是在启动时加载的,因此文件名必须在启动时就可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)