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

macOS Catalina使用Mailtrap出现OpenSSL证书验证失败问题咨询

问题根因

你遇到的SSL证书校验失败问题确实由Let's Encrypt旧DST Root CA X3根证书过期导致,你之前的排查方向是正确的。macOS Catalina 10.15.7自带的LibreSSL 2.8.3版本内置根证书库仍保留了已过期的DST根证书,校验Mailtrap服务的证书链时会优先匹配该过期证书,最终触发校验失败报错。
你之前修改系统钥匙串证书的操作未生效,原因是LibreSSL默认不读取macOS系统钥匙串的证书配置,仅使用自身内置的根证书库。


最优解决方案(无系统级副作用)

无需修改系统SSL组件,仅调整应用层的CA证书配置即可解决问题:

  • 下载官方维护的最新CA根证书集合文件cacert.pem,保存到本地无权限限制的路径,例如/usr/local/etc/cacert.pem
  • 找到你当前使用的PHP配置文件php.ini,修改以下两个配置项:
curl.cainfo = "/usr/local/etc/cacert.pem"
openssl.cafile = "/usr/local/etc/cacert.pem"
  • 重启Web服务(Apache/Nginx)或PHP-FPM进程,重新测试邮件发送即可。
    如果使用其他语言的开发框架,可直接在邮件发送组件的配置项中指定自定义CA证书路径,无需修改全局配置。

更新LibreSSL方案(适用于需要系统全局生效的场景)

如果你需要解决系统所有工具的SSL校验问题,可以选择更新LibreSSL版本:

操作步骤

  • 确认已安装Homebrew包管理器
  • 执行命令安装最新版LibreSSL:
    brew install libressl
  • 将新版LibreSSL的路径加入终端环境变量,如果你使用zsh终端,执行:
    echo 'export PATH="/usr/local/opt/libressl/bin:$PATH"' >> ~/.zshrc
    如果使用bash终端,执行:
    echo 'export PATH="/usr/local/opt/libressl/bin:$PATH"' >> ~/.bash_profile
  • 执行source ~/.zshrc(或对应bash配置文件)使配置生效,执行openssl version确认版本已升级到3.x最新版即可。

副作用说明

  • macOS原生系统工具默认仍会调用自带的LibreSSL 2.8.3版本,不会影响系统基础功能稳定性
  • 仅终端下调用的第三方命令行工具会使用新版LibreSSL,极小概率会出现依赖旧版LibreSSL的工具兼容异常
  • 如出现兼容问题,只需要删除之前加入的PATH环境变量配置,重启终端即可恢复系统默认版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:18:02