我正在安装letsencrypt在我自己的服务器上设置一个虚拟主机作为服务器。
成功创建证书后,我收到如下消息:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.net/privkey.pem
(我更改了域名以保护,嗯,实际上,没有任何理由)。
当我查看目录时,我发现以下内容
ls /etc/letsencrypt/live/example.net
cert.pem@ chain.pem@ fullchain.pem@ privkey.pem@ README
所以,我有四个指向四个真实文件的链接。
在我的.conf
文件中我有类似这样的内容(使用版本 1):
<VirtualHost *:443>
ServerName example.net:443
ServerAlias *.example.net
ServerAdmin [email protected]
VirtualDocumentRoot /data/httpd/html/example.net/%-3
SSLEngine on
# Version 1
SSLCertificateFile /etc/letsencrypt/live/example.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.net/chain.pem
# Version 2
# SSLCertificateFile /etc/letsencrypt/live/example.net/fullchain.pem
# SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem
</VirtualHost>
我见过其他使用版本 2 的文档。
问题是:鉴于消息中只提到两个文件,而实际上有四个文件,那么使用letsencrypt使用虚拟主机吗?
答案1
cat cert.pem chain.pem
相当于cat fullchain.pem
。换句话说,fullchain.pem 文件只是 cert.pem 和 chain.pem 的组合。参见以下内容超级用户问题有关 SSL 证书链的更多信息。
我不确定 Apache 端是否如此,但似乎版本 1 只是接收了两个文件(cert.pem 和 chain.pem),然后在内部将它们连接起来,而版本 2 只要求连接后的版本。我认为现在大多数 Web 服务器只要求 SSLCertificateFile(又名“fullchain.pem”)和私钥。