首页  >  文章  >  后端开发  >  如何修复 PHPMailer 中的“SSL3_GET_SERVER_CERTIFICATE:证书验证失败”错误?

如何修复 PHPMailer 中的“SSL3_GET_SERVER_CERTIFICATE:证书验证失败”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-26 09:49:30337浏览

How to Fix

PHPMailer 中 SSL 证书验证失败问题排查

PHPMailer 用户在使用 self 从服务器发送电子邮件时可能会遇到“SSL3_GET_SERVER_CERTIFICATE:证书验证失败”错误- 签署的证书。此问题是由于 PHP 5.6 中引入的 SSL 证书验证而引起的。

根本原因:

默认情况下,PHPMailer 会验证 SSL 证书以确保其真实性。当遇到自签名证书时,由于缺少适当的 CA(证书颁发机构),验证失败。

解决方案:

要解决此问题,您有两个选择:

1。修复 SSL 配置:

如果可能,获取由受信任的 CA 签名的有效 SSL 证书并将其正确安装在您的邮件服务器上。这将确保成功的证书验证。

2.禁用 SSL 证书验证(不推荐):

警告:禁用证书验证会产生严重的安全隐患。它使您面临中间人攻击的风险。

要禁用证书验证,请设置以下 PHPMailer 选项:

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

编辑 PHPMailer 库以禁用验证是强烈建议不要这样做,因为它会在升级时中断。

安全注意事项:

禁用 SSL 证书验证只能被视为临时解决方法,而不是长期解决方案。保护您的 SSL 配置以防止潜在的安全漏洞至关重要。

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

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