我正在尝试动态读取SSL证书的位置,具体取决于用于连接到我的服务器的URL。我尝试了几种不同的方法,但似乎都没有。目前我有如下所述的配置
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没有被网址替换。
编辑:当我手动更换网址时只有%0,然后说网址已经工作了SSL
答案 0 :(得分:0)
变量%0引用请求的服务器名称,如Host:header中所示。
Host标头是HTTP请求的一部分。 HTTP请求仅在成功进行TLS握手后才可用。此握手需要证书。因此,%0
不能用于指定证书的路径。
我怀疑是否有任何其他变量可用于此目的,因为证书是在启动时加载的,因此文件名必须在开始时可用。