代码之家  ›  专栏  ›  技术社区  ›  Red Vulpine

WAMP/XAMPP中的SSL错误:stream\u socket\u enable\u crypto():SSL操作失败

  •  1
  • Red Vulpine  · 技术社区  · 7 年前

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

    连接失败。错误#2:stream\u socket\u enable\u crypto():SSL 操作失败,代码为1。OpenSSL错误 消息:错误:14090086:SSL 例程:ssl3\u get\u server\u证书:证书验证失败 [C:…\SMTP.php第404行]

    所有测试均使用gmail进行 “允许不太安全的应用” 启用。

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

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Hossein Chamani    7 年前

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

    2-如果你有这个文件,那么你必须在你的php里面查找。ini文件,并查看是否已在其中设置。为此:查找行

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

    如果您找到带有特定地址的行,请查找cacert。pem文件在该地址中,如果您找到它,则使用cacert完成所有操作。pem文件。否则,你应该使用正确的地址。

    希望这对你有帮助。。祝你好运