我有一个 apache 网络服务器,它使用 certbot 来加密 Let's Encrypt SSL 证书。是否可以为每个管理的虚拟主机设置多个独立的证书?目前 certbot 只能使用一个具有多个备用名称的证书。
我有这个要求,不向所有客户端(在浏览器的证书详细信息中)发布我的网络服务器的域列表。
答案1
在 Certbot 方面没有问题。只需为每个域申请一个证书,Certbot 就会自动更新它们。
由于 Apache 2.4 支持服务器名称指示,这边也没有问题,只需要为每个虚拟主机配置不同的证书即可:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
ServerName example.net
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem
</VirtualHost>
编辑:如果你不想让 certbot 破坏你的 Apache 配置,请使用网页根目录插件。为 certbot 创建一个目录:
mkdir -p /var/www/certbot/.well-known/acme-challenge
<VirtualHost>
为所有在端口 80 或全局运行的添加别名:
Alias "/.well-known/acme-challenge/" "/var/www/certbot/.well-known/acme-challenge/""
使用以下命令运行 cerbot网页根目录插入:
certbot certonly --webroot -w /var/www/certbot -d example.com -d www.example.com
在更新证书时,Certbot 会记住这些设置。
答案2
如果您已经配置了虚拟服务器,运行时certbot --apache
它会询问您想要哪个域的证书。