Apache,LetsEncrypt&Vrtual主机

我正在我自己的服务器上为一个虚拟主机安装一个letsencrypt服务器。

成功创build证书后,我收到如下消息:

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与虚拟主机的正确configuration是什么?

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”)和私钥。