Apache 2.4.6 部分设备出现奇怪SSL错误 续期Let's Encrypt证书未解决
Apache 2.4.6 SSL证书部分设备验证失败解决思路
- 确认证书配置路径正确性
检查站点443虚拟主机配置中SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile三个参数的指向路径,确认是否对应Let's Encrypt续期后对应域名目录下的最新文件,同时检查目录下的软链是否正常指向归档目录下的新版证书文件,避免配置指向了旧的备份证书。 - 彻底重启Apache服务确认配置生效
避免使用systemctl reload httpd或apachectl graceful这类重载操作,部分Apache 2.4版本在加载多虚拟主机配置时重载可能不生效,先执行systemctl stop httpd,确认所有httpd进程全部退出后再执行systemctl start httpd,完成后可以用openssl相关命令本地验证返回的证书是否为新版。 - 检查443端口虚拟主机冲突与SNI配置
排查所有Apache配置文件中是否存在多个监听443端口的虚拟主机,如果存在多个站点共用443端口,需确认kamakoti.org对应的虚拟主机证书配置正确,同时将该虚拟主机设为第一个加载的443虚拟主机,作为无SNI支持客户端的默认 fallback,避免不支持SNI的老旧设备拿到其他站点的旧证书。 - 排查中间层证书缓存问题
确认站点是否有CDN、反向代理、负载均衡、WAF等前置中间设备,如果存在这类中间层,仅更新源站Apache的证书无法解决问题,需同步更新所有前置节点部署的SSL证书,清理中间层的SSL会话缓存后再验证。 - 修正证书链配置适配老旧设备
问题出现时间匹配2021年9月30日Let's Encrypt旧根证书DST Root CA X3过期的时间节点,老旧手机系统(如安卓7及以下版本)默认不信任新的ISRG Root X1根证书,需确认Apache配置中SSLCertificateChainFile指向的是Let's Encrypt生成的完整证书链,不要仅使用单独的域名证书,如果面向老旧设备提供服务可以选择配置兼容旧根的证书链。 - 日志说明
你看到的AH01998: Connection closed to child 13 with abortive shutdown日志属于现象而非问题原因,是客户端证书验证失败后主动断开连接触发的服务端日志,不需要针对该日志做额外排查。
内容的提问来源于stack exchange,提问作者Rajan
相关产品推荐
相关产品推荐

