2021年9月30日后PHPMailer等场景LetsEncrypt证书未过期却报错失效
PHPMailer TLS连接587端口证书过期问题说明
问题表现
2021年10月1日起,出现PHPMailer提示证书过期、无法通过TLS加密正常连接587端口的问题。
临时修复方案
修改SSL配置标识,关闭verify_peer和verify_peer_name验证可临时修复邮件发送问题,对应代码如下:
$mail->SMTPOptions = array ( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ));
该方案并非理想的长期解决方案,存在SSL校验缺失的安全风险
关联现象
- 通过80端口Web访问同一服务器时,证书状态完全正常
- 使用OpenSSL命令行连接时,提示证书于2021年9月30日过期
- 该同类型证书验证问题也会出现在PHP的
file_get_contents函数调用场景中
注:本问题为PHPMailer及邮件场景专属问题,提供了PHPMailer相关有效信息,不应被关闭;除成因和修复方案相似外,与Docker及其他关联问题无关联。
内容的提问来源于stack exchange,提问作者blissweb
相关产品推荐
相关产品推荐

