gpt4 book ai didi

PHP - 使用 STARTTLS 和自签名证书的 Swiftmailer

转载 作者:行者123 更新时间:2023-12-02 23:16:41 29 4
gpt4 key购买 nike

我尝试使用 STARTTLS 通过 php 和 swiftmailer 发送电子邮件,但收到证书错误。我拥有 SMTP 服务器的 root 访问权限,并且使用的证书是自签名的。我在两台机器上都使用 Debian(Web 服务器和 smtp 服务器)

PHP 消息:PHP 警告:stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:
错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证在第 97 行的 [..]/lib/classes/Swift/Transport/StreamBuffer.php 中失败
PHP 消息:PHP fatal error :在 [..]/lib/classes/Swift/Transport/EsmtpTransport.php:294 中未捕获异常“Swift_TransportException”,并显示消息“无法使用 TLS 加密进行连接”

我是否需要在某处添加我自己的证书才能使其被接受?或者这是一些 OpenSSL 配置错误?

最佳答案

Editor's note: disabling SSL verification has security implications. Without verification of the authenticity of SSL/HTTPS connections, a malicious attacker can impersonate a trusted endpoint (such as GitHub or some other remote Git host), and you'll be vulnerable to a Man-in-the-Middle Attack.

Be sure you fully understand the security issues before using this as a solution.

Swiftmailer 现已更新,包含此选项。现在可以使用 Swift_SmtpTransport 实例中的 setStreamOptions 方法来解决此问题,而无需编辑 swift 类。

$transport = Swift_SmtpTransport::newInstance('smtp.server.com', 123, 'tls')
->setUsername('username')
->setPassword('password')
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));

关于PHP - 使用 STARTTLS 和自签名证书的 Swiftmailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896265/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com