使用 Certbot 申请 Apache 证书配置棘手问题
如果 Apache 上解析多个域名时,只有为第一个域名申请证书时是正常的,从第二个开始总是神经错乱,把你的 Apache 搞到不能工作。现如今总结一个申请、检查方法。
本文以申请 my-domain.com 的证书为例,详细讲解一下所常见的陷阱。(“红色”仅作为强调作用)
申请时使用 sudo certbot --apache -d my-domain.com 命令
仔细查看申请信息,确保成功。
1、检查配置文件 000-default-le-ssl.conf ,是否在其他域名配置(默认域名)中增加一个别名,ServerAlias my-domain.com 。如果在其他域名配置节中把当前申请证书的域名配置进去了,这是 certbot 错乱的表现之一。果断删除。
2、在当前申请域名证书的配置节,仔细检查如下三行:
SSLCertificateFile /etc/letsencrypt/live/my-domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my-domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
红色部分,是你刚刚申请的域名名称。有时候 certbot 会错乱地弄成别的名字,果断地改成刚才申请的域名。
3、在 000-default.conf 配置文件中,找到 my-domain.com 配置节
<VirtualHost *:80>
ServerName my-domain.com
# 其他配置
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =my-domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]</VirtualHost>
请注意域名部分,有时候 certbot 发神经会把域名变成其他的域名,不要理会,果断改成刚刚申请证书的域名,即保持与 ServerName my-domain.com 一致!