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

CentOS 7(LAMPP & Laravel)服务器如何配置SSL正常发送邮件

解决CentOS 7 LAMPP环境下SMTP SSL发送邮件失败问题

这个问题本质是CentOS 7环境下PHP无法完成smtp.example.com的SSL证书合法性校验导致的,按以下步骤处理即可:

1. 更新系统CA证书库

  • 安装/更新系统根证书包:yum install ca-certificates -y
  • 启用动态CA配置功能:update-ca-trust force-enable
  • 如果你使用的smtp.example.com是自签名证书,将证书的PEM格式文件上传到/etc/pki/ca-trust/source/anchors/目录,执行以下命令更新证书库:
    update-ca-trust extract

2. 配置LAMPP PHP的SSL证书路径

LAMPP自带的PHP默认可能未指向系统CA证书库,需要手动修改php.ini配置:

  • 打开LAMPP默认php.ini文件:vi /opt/lampp/etc/php.ini
  • 找到openssl相关配置项,去掉注释并修改为以下值:
    openssl.cafile = "/etc/pki/tls/certs/ca-bundle.crt"
    openssl.capath = "/etc/pki/tls/certs"
    
  • 保存配置后重启LAMPP服务生效:/opt/lampp/lampp restart

3. 验证SSL连接有效性

使用openssl命令测试SMTP服务器的SSL连接是否能正常通过系统验证:

  • 若使用SMTP over SSL(端口默认465):openssl s_client -connect smtp.example.com:465 -CApath /etc/pki/tls/certs
  • 若使用STARTTLS(端口默认587):openssl s_client -connect smtp.example.com:587 -starttls smtp -CApath /etc/pki/tls/certs
    输出末尾的Verify return code显示为0 (ok)即代表系统层面SSL验证正常。

4. 恢复邮件配置的SSL校验规则

删除之前绕过验证的配置,恢复标准校验规则即可:

'stream' => [
    'ssl' => [
        'allow_self_signed' => false,
        'verify_peer' => true,
        'verify_peer_name' => true,
    ],
],

注意:如果完成以上配置后仍验证失败,请确认smtp.example.com的证书Subject Alternative Name字段包含smtp.example.com,且证书未过期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:15:10