当前位置: 首页>>技术教程>>正文


例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

, ,

病征

无法使用PHP和OpenSSL连接到SMTP服务器。以下相关错误消息可能会出现在故障排除输出中:


PHP Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL 
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
PHP Warning: fsockopen(): Failed to enable crypto 
PHP Warning: fsockopen(): unable to connect to ssl
PHP User Warning: Unable to connect to SMTP server 

您缺少系统上的证书颁发机构(CA)文件,或者您提供了证书颁发机构(CA)文件的错误路径。如果未在其中提供CA文件的自定义路径php.ini文件PHP寻找默认的系统CA根证书捆绑包。如果缺少CA根证书捆绑包,则会收到上述错误消息。解决方案是安装证书颁发机构(CA)捆绑包:


DEBIAN/UBUNTU:
# apt-get install ca-certificates
FEDORA:
# dnf install ca-certificates.noarch
CENTOS/REDHAT
# yum install ca-certificates.noarch

另一种选择是提供一个到证书颁发机构(CA)捆绑包的自定义路径php.ini配置文件使用openssl.cafileopenssl.capath指令。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10192.html,未经允许,请勿转载。