【问题标题】:SSL Error in WAMP/XAMPP: stream_socket_enable_crypto(): SSL operation failedWAMP/XAMPP 中的 SSL 错误:stream_socket_enable_crypto():SSL 操作失败
【发布时间】:2018-04-12 15:19:31
【问题描述】:

一周前,我正在使用 PHPMailer 测试 WAMP 中的一些组件,并且一切正常。第二天它就停止工作了。 WAMP 中的配置没有更改。当我尝试发送电子邮件时,使用 SMTPDebug 出现以下错误:

连接失败。错误 #2:stream_socket_enable_crypto(): SSL 操作失败,代码为 1。OpenSSL 错误 消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:证书验证失败 [C:...\SMTP.php 第 404 行]

我使用 x86 版本的 WAMP 和 XAMPP(我目前使用 x64 WAMP)进行了其他测试,但没有成功,我得到了同样的错误。

所有测试均在启用 gmail“允许不太安全的应用” 的情况下执行。

在文档中快速搜索后,我发现问题是由于 SSL 证书的验证。作为一种解决方法,我可以使用以下代码跳过此检查:

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

但如前所述,这是一种解决方法。我想知道问题的根源在哪里,我不明白它为什么停止工作。我已经尝试替换 WAMP / XAMPP 文件夹中的证书,但没有成功。也做了广泛的研究,但没有结果。知道如何在没有任何解决方法的情况下解决证书验证问题吗?

【问题讨论】:

    标签: php phpmailer


    【解决方案1】:

    可能重复:Warning: stream_socket_enable_crypto(): SSL operation failed with code 1

    有很多配置导致此错误出现。但更多的时候是你的系统配置设置不正确。要正确执行此操作: 1- 检查是否有 cacert.pem 文件用于 OPENSSL,如果没有,请根据您的 php 版本从 cacert.pem 下载正确版本,并将 php.ini 文件配置为“2-”

    2- 如果你有这个文件,那么你必须在你的 php.ini 文件中查找,看看它是否已经被设置在其中。这样做:查找行

    openssl.cafile ="example address..\cacert.pem"
    

    如果找到具有特定地址的行,则在该地址中查找 cacert.pem 文件,如果找到,则全部使用 cacert.pem 文件完成。否则,您应该使用正确的地址。

    希望这对你有帮助..祝你好运..!

    【讨论】:

      猜你喜欢
      • 2015-01-21
      • 2018-03-07
      • 2016-04-06
      • 2017-11-09
      • 2015-08-13
      • 2020-03-04
      • 2022-07-01
      • 1970-01-01
      相关资源
      最近更新 更多