如何修复CentOS 7系统中Certbot证书链不完整的问题
修复步骤
1. 解决注释自签名证书后httpd无法重启的问题
你注释配置后httpd启动失败是因为CentOS 7默认httpd的/etc/httpd/conf.d/ssl.conf中自带的默认443虚拟主机段强制要求配置SSLCertificateFile和SSLCertificateKeyFile参数,仅注释证书路径会导致配置校验不通过。
操作步骤:
- 先执行命令
apachectl configtest查看具体的配置报错信息,确认问题根源 - 如果你已经为自己的站点单独配置了443虚拟主机,直接把
ssl.conf中整个<VirtualHost _default_:443>段全部注释,不需要保留默认的自签名证书配置 - 配置修改完成后再次执行
apachectl configtest,返回Syntax OK后再执行systemctl restart httpd重启服务即可
2. 修复R3中间证书缺失导致的证书链不完整问题
CentOS 7默认搭载的Apache 2.4.6版本不支持直接读取包含完整链的fullchain.pem文件,需要单独配置中间证书参数:
- 打开你站点的443虚拟主机配置文件,确认证书配置段为以下内容(替换为你实际的域名路径):
SSLCertificateFile /etc/letsencrypt/live/你的站点域名/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/你的站点域名/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/你的站点域名/chain.pem
- 以上参数中
SSLCertificateChainFile就是用来指定R3中间证书的配置,Certbot生成的chain.pem文件已经包含了完整的R3根链,不需要额外手动下载 - 保存配置后再次执行
apachectl configtest校验,校验通过后重启httpd服务即可
3. 验证修复效果
重启完成后再次到SSL Labs进行检测,证书链问题会消失,评级可恢复为A。
内容的提问来源于stack exchange,提问作者HWD
相关产品推荐
相关产品推荐

