PHP7环境下WordPress出现DOMDocument证书及加密启用警告求助
嘿,这个问题我见得挺多的——本质是PHP7对SSL证书的验证规则比PHP5严格多了,之前PHP5默认睁一只眼闭一只眼的证书问题,到PHP7就直接弹出警告了。给你几个靠谱的解决思路:
方案1:临时绕过证书验证(快速调试用,别放生产)
如果只是临时要让代码跑起来,或者暂时没法修复证书本身的问题,可以在调用DOMDocument::load()之前,给它加个忽略证书验证的流上下文:
// 在load操作前添加这段代码 $sslContext = stream_context_create([ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]); $domDoc = new DOMDocument(); // 把上下文参数传给load方法 $domDoc->load('https://www.readmk.com/devotionals/feed...', LIBXML_NOERROR, $sslContext);
注意:这个方案会降低安全性,相当于关掉了SSL的身份验证,生产环境绝对不能长期用,只是临时救急的手段。
方案2:修复证书CN不匹配问题(根本解决之道)
警告里明确说了Peer certificate CN='getalongwithgod.com' did not match expected CN='www.readmk.com',这是核心问题:你要访问的www.readmk.com,服务器返回的SSL证书却是给getalongwithgod.com用的,域名不匹配。解决步骤:
- 先检查
www.readmk.com的服务器配置,确认SSL证书是不是绑错了域名,或者域名解析到了错误的服务器(比如之前的旧服务器) - 如果用了CDN或者反向代理,也要检查CDN的SSL证书是否正确覆盖了
www.readmk.com这个域名 - 重新申请包含
www.readmk.com作为备用域名(SAN字段)的SSL证书,部署到目标服务器上,确保证书和域名完全匹配
方案3:检查服务器的根CA证书是否完整
有时候PHP7验证失败,是因为服务器上缺少必要的根CA证书,导致无法信任目标域名的证书。可以这么操作:
- 对于Linux服务器,确保安装了完整的CA证书包:Ubuntu/Debian用
apt install ca-certificates,CentOS/RHEL用yum install ca-certificates - 如果是自定义的PHP环境,在
php.ini里指定CA证书文件的路径,比如:
openssl.cafile = /etc/ssl/certs/ca-certificates.crt
修改后重启PHP服务,让配置生效。
内容的提问来源于stack exchange,提问作者calvin200001
相关产品推荐
相关产品推荐

