XAMPP Apache服务器OpenSSL证书验证失败问题求助
确认Apache的SSL证书链完整性
Godaddy颁发的证书需要完整的证书链(包含根证书与中间证书),需确保httpd-ssl.conf中配置了完整的证书链文件:
找到SSLCertificateChainFile指令,确保其指向Godaddy提供的bundle证书文件路径,若该指令缺失则添加:SSLCertificateChainFile "path/to/godaddy_bundle.crt"注:Apache 2.4.8及以上版本也可使用
SSLCACertificateFile替代,但SSLCertificateChainFile兼容性更优。验证SSL协议与加密套件配置
检查httpd-ssl.conf中的SSLProtocol和SSLCipherSuite,确保未禁用PHP Stream依赖的TLS版本(如TLS 1.2/1.3),推荐配置:SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite HIGH:!aNULL:!MD5:!RC4避免使用过旧或不安全的协议,防止PHP的OpenSSL库无法完成验证。
检查
ServerName与证书域名完全匹配
确保httpd-ssl.conf中的ServerName与证书绑定的域名完全一致(含www前缀,若证书包含该前缀),示例:ServerName example.com:443域名不匹配会触发证书验证失败,浏览器可能通过SNI兼容,但PHP Stream会严格验证域名一致性。
确认SSL模块已加载
检查httpd.conf中是否已启用SSL模块,若存在注释需移除并重启Apache:LoadModule ssl_module modules/mod_ssl.so验证证书文件权限
确保Apache进程拥有读取证书文件(证书链、私钥)的权限。Windows环境下XAMPP默认将证书放在apache/conf/ssl.crt与apache/conf/ssl.key目录,权限通常无问题;若使用自定义路径,需确保Apache运行用户(通常为SYSTEM或apache)可访问这些文件。
内容的提问来源于stack exchange,提问作者Nebiyu Deribe

