首页  >  文章  >  后端开发  >  使用带有自签名证书的 PHPMailer 时如何修复“证书验证失败”错误?

使用带有自签名证书的 PHPMailer 时如何修复“证书验证失败”错误?

Susan Sarandon
Susan Sarandon原创
2024-10-26 10:56:30479浏览

How to Fix

PHPMailer SSL 验证问题:证书验证失败

问题:

尝试发送时来自具有自签名证书的邮件服务器的电子邮件,PHPMailer 会抛出以下错误:

PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in class.smtp.php on line 327.

解决方案:

从 PHP 5.6 开始,SSL 证书验证已被介绍了。要在不进行验证的情况下恢复到旧行为,请在 PHPMailer 中设置 SMTPOptions 属性:

<code class="php">$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);</code>

注意:

禁用 SSL 验证会产生安全影响。如果没有验证,恶意行为者可以冒充可信端点并执行中间人攻击。在使用此解决方案之前请考虑这些风险。

以上是使用带有自签名证书的 PHPMailer 时如何修复“证书验证失败”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn