首页  >  文章  >  后端开发  >  如何使用 PHP 5.6 和 GoDaddy SSL 解决“stream_socket_enable_crypto():SSL 操作失败,代码 1”错误?

如何使用 PHP 5.6 和 GoDaddy SSL 解决“stream_socket_enable_crypto():SSL 操作失败,代码 1”错误?

Linda Hamilton
Linda Hamilton原创
2024-10-19 10:06:30288浏览

How to Resolve

stream_socket_enable_crypto() 错误:SSL 操作失败,代码 1

在 Amazon EC2 Linux 上使用 PHP 5.6 和 GoDaddy SSL 证书时,使用 Mailgun 或其他 SMTP 服务通过 SSL 发送电子邮件时可能会出现错误:

stream_socket_enable_crypto(): SSL operation failed with code 1.
OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

根本原因

出现此错误是由于 PHP 中引入了更严格的 SSL 证书验证5.6.默认情况下,PHP 会根据证书中的域名检查 URL 中的域名。由于 GoDaddy 的 SSL 证书是通配符证书,与您服务器的特定域名不匹配。

解决方案

有两种方法可以解决此问题:

选项 1:禁用证书验证

<code class="php">'stream' => [
    'ssl' => [
        'allow_self_signed' => true,
        'verify_peer' => false,
        'verify_peer_name' => false,
    ],
],</code>

警告:禁用证书验证可能会危及应用程序的安全性。建议改用选项 2,或升级到 PHP 7.2 或更高版本。

选项 2:升级 PHP

PHP 版本 7.2 及更高版本包含此问题的修复问题。升级您的 PHP 版本将解决此错误并维护应用程序的安全性。

以上是如何使用 PHP 5.6 和 GoDaddy SSL 解决“stream_socket_enable_crypto():SSL 操作失败,代码 1”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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