首页  >  文章  >  后端开发  >  为什么 PHPMailer 在 PHP 5.6 下抛出“对等证书不匹配”错误?

为什么 PHPMailer 在 PHP 5.6 下抛出“对等证书不匹配”错误?

Susan Sarandon
Susan Sarandon原创
2024-10-27 06:23:29492浏览

 Why Does PHPMailer Throw a

PHPMailer 警告:对等证书不匹配

PHPMailer 用户遇到“PHP 警告:stream_socket_enable_crypto():对等证书与预期不匹配”错误PHP 5.6 下可能会面临证书验证问题。

背景:

PHP 5.6 为 SSL 连接引入了更严格的证书验证。因此,如果远程服务器的 SSL 配置不正确,PHPMailer 将无法加密连接。

症状:

  • 连接失败错误: PHPMailer 显示“无法连接到 SMTP 主机。”
  • 日志记录错误: 日志显示证书不匹配警告:“对等证书 CN=*.mail.dreamhost.com ...' 与预期的 CN=mx1.sub4.homie.mail.dreamhost.com...'".
  • 立即退出命令: PHPMailer 可能会在之后发出 QUIT 命令尝试 STARTTLS,表示加密失败。

解决方案:

建议的解决方案是更正远程服务器上的证书或验证设置。这可能涉及用有效证书替换无效证书或重新配置 SSL 设置。

替代方案:

如果需要立即交付且证书不匹配并不重要,您可以使用以下选项在 PHPMailer 中禁用证书验证:

$mail->SMTPOptions = array (
    'ssl' => array(
        'verify_peer'  => false,
        'verify_peer_name'  => false,
        'allow_self_signed' => true));

注意: 不建议禁用证书验证,因为它可能会接受无效证书,从而损害安全性。

以上是为什么 PHPMailer 在 PHP 5.6 下抛出“对等证书不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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