完美解决OpenSSL证书问题导致不能发信

最近在部署phpmailer发信的时候,遇到这么一个错误

OpenSSL Error messages: error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

这个错误从字面意思上理解应该是OpenSSL证书问题。于是在网络上搜寻一段时间后。找到了完美的解决方案,完美杜绝了任何报错。

解决方案

先查找找验证钥匙的地址

使用 php函数openssl_get_cert_locations(),也可以到php.ini文件中寻找到。
ssh中输入如下命令php -r "print_r(openssl_get_cert_locations());"

Array
(
    [default_cert_file] => /usr/local/openssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /usr/local/openssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /usr/local/openssl/private
    [default_default_cert_area] => /usr/local/openssl
    [ini_cafile] => 
    [ini_capath] => 
)

查找后的[default_cert_file] => /usr/local/openssl/cert.pem,则为默认证书地址,我们替换成最新的证书即可解决问题。

下载并替换证书文件

wget http://curl.haxx.se/ca/cacert.pem -O /usr/local/openssl/cert.pem

最后重启php即可解决问题

service php-fpm restart
最后修改:2018 年 04 月 25 日 12 : 32 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论