You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHPMailer连接Office365发邮件时遇SSL签名错误求助

PHPMailer连接Office365出现SSL签名错误的排查方案

错误信息

2022-11-28 11:29:32 Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:error:04091068:rsa routines:INT_RSA_VERIFY:bad signatureerror:1408D07B:SSL routines:ssl3_get_key_exchange:bad signature [C:\Apache24\htdocs\cursoCompletoPHP7\aula87\vendor\phpmailer\phpmailer\src\SMTP.php line 470]
SMTP Error: Could not connect to SMTP host. Connection failed. stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:error:04091068:rsa routines:INT_RSA_VERIFY:bad signatureerror:1408D07B:SSL routines:ssl3_get_key_exchange:bad signature

可能的原因及解决方法

  • OpenSSL版本不兼容
    Office365可能更新了SSL/TLS加密套件要求,生产服务器的旧版本OpenSSL不支持新的签名算法(如SHA-256及以上),导致签名验证失败。
    解决:升级生产服务器的OpenSSL到最新稳定版,验证是否支持符合Office365要求的加密算法。

  • 生产网络的SSL拦截设备干扰
    生产环境中的防火墙、代理或安全网关可能开启了SSL中间人拦截,生成的证书签名不符合Office365的校验标准,触发错误。
    解决:检查网络安全设备配置,临时关闭SSL拦截功能测试;或把Office365的SMTP服务器(smtp.office365.com)加入设备信任白名单,绕过拦截。

  • Office365 SMTP政策变更
    微软近期可能调整了Office365的SMTP服务配置,禁用了旧的加密套件或签名规则,而生产环境的PHPMailer/PHP组合未适配新规则。
    解决:

    1. 确认PHPMailer配置:使用端口587,加密方式设置为STARTTLS(而非SSL);
    2. 更新PHPMailer到最新版本,确保兼容Office365的最新SMTP政策。
  • 生产服务器系统时间偏差
    SSL证书验证依赖准确的系统时间,若服务器时间与实际时间偏差过大(超出证书有效期范围),会导致签名校验失败。
    解决:将生产服务器时间同步到公共NTP服务器,确保时间准确。

内容的提问来源于stack exchange,提问作者enaelkirsch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:45:35