You need to enable JavaScript to run this app. Ionic Angular应用iOS端SSL Pinning配置Xcode报错求助
优惠活动
大模型
产品
解决方案
定价
更多

Ionic Angular应用iOS端SSL Pinning配置Xcode报错求助

Ionic Angular iOS端SSL Pinning -9813错误解决思路

Xcode抛出的-9813错误对应iOS系统的NSURLErrorServerCertificateUntrusted,说明SSL证书校验未通过,由于iOS和Android的证书校验逻辑、资源读取规则存在差异,安卓正常不代表iOS配置正确,可按照以下步骤排查:

  • 排查证书格式与资源配置
    iOS要求固定的证书为PEM格式,且需上传完整证书链(叶子证书+中级CA证书+根CA证书),不可仅上传叶子证书。同时需确认在config.xml的ios平台配置段添加了证书资源复制规则,确保证书被正确打包进iOS应用的资源目录,示例配置:
    <platform name="ios">
      <resource-file src="你本地证书路径/xxx.pem" target="xxx.pem" />
    </platform>
    
    注意iOS文件系统大小写敏感,配置的证书文件名、后缀需和实际文件完全一致。
  • 排查插件调用参数
    调用SSL Pinning配置方法时,模式参数需明确设置为pinned,不可复用Android端的特殊配置参数。同时确认传入的证书文件名和资源目录中的文件名完全匹配,不要漏写后缀。
  • 排查ATS配置冲突
    检查Xcode项目info.plist中的ATS配置,不要为需要做SSL Pinning的域名添加NSExceptionAllowsInsecureHTTPLoads例外,也不要开启全局NSAllowsArbitraryLoads配置,该配置会跳过部分系统校验逻辑,导致插件的Pinning规则失效。
  • 排查插件版本兼容性
    低于3.0.0版本的cordova-plugin-advanced-http存在iOS端Pinning实现缺陷,搭配Cordova iOS 6+、Ionic 6+以上版本时会出现校验失败问题,建议将插件升级到最新稳定版,升级后重新移除并添加iOS平台,避免旧版本缓存影响。
  • 排查请求环境匹配问题
    测试时关闭Charles、Fiddler等抓包代理,这类工具会替换请求的SSL证书,导致Pinning校验失败。同时确认请求使用的域名和证书绑定的域名完全匹配,若使用IP请求,需确保证书SAN字段包含对应IP,否则会触发校验失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 06:06:03