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

Mac OS应用遇TIC SSL信任错误:后端迁服务器后API连接失败

解决Mac OS应用服务器迁移后API连接SSL信任错误(-9802)

嘿,这个问题我之前帮团队排查过好几次——你看到的Strict Trust Evaluation yielded status(-9802)和TIC SSL Trust Error本质就是Mac系统/应用不信任新服务器的SSL证书,毕竟刚迁完服务器,大概率是新机器的证书配置出了问题。给你一步步来的解决方案:

第一步:先确认服务器端证书是否合法

首先得排除是服务器的问题,用Mac终端跑这个命令检查证书链:

openssl s_client -connect your-api-domain:443

看完输出重点看这几个地方:

  • 有没有出现Verify return code: 0 (ok),如果是其他数字比如20(unable to get local issuer certificate)就是证书链不全
  • 检查Subject:里的域名是否和你的API域名完全匹配(包括www/非www的区别)
  • 也可以直接用Safari访问API的基础地址,看地址栏的锁图标,点进去查看证书详情,有没有弹出“证书不受信任”的提示

第二步:如果是内部/自签证书,手动信任

如果你们用的是自签证书或者公司内部CA签发的证书,需要让Mac系统信任它:

  • 把证书文件(.crt/.pem格式)拖到「钥匙串访问」应用里,选择「系统」钥匙串(不是登录)
  • 找到导入的证书,右键>「显示简介」
  • 切换到「信任」标签,把「使用此证书时」下的「SSL」选项改成「始终信任」
  • 输入Mac密码确认,然后重启你的应用

注意:Mac Catalina及以上版本,第一次导入自签证书后,还要去「系统偏好设置>安全性与隐私>通用」里点击「允许」该证书(底部会有提示)

第三步:代码层面临时调试(仅限测试环境!)

如果只是想临时验证API功能,不想折腾证书,可以在NSURLSession的代理方法里临时跳过SSL验证(绝对不要放到生产环境):

func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust {
        let credential = URLCredential(trust: challenge.protectionSpace.serverTrust!)
        completionHandler(.useCredential, credential)
        return
    }
    completionHandler(.performDefaultHandling, nil)
}

第四步:生产环境的正确姿势

如果是上线用的应用,绝对不能用第三步的方法,必须保证服务器证书是正规CA签发的(比如Let's Encrypt免费证书、Digicert等付费证书),并且证书链配置完整,域名完全匹配——这样Mac系统会自动信任,不需要任何额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:53:59