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

React Native应用实现SSL固定:iOS Identity Pinning与Android方案

React Native 无第三方包实现SSL证书固定(iOS/Android)

由于react-native-ssl-pinning已停止维护,我们可以直接通过iOS和Android的原生配置实现SSL证书固定,且该配置会自动覆盖React Native的网络请求(包括fetch、axios等)。

iOS 14+ 实现步骤

1. 获取证书的SPKI SHA-256哈希

使用OpenSSL命令获取目标域名证书的哈希值:

openssl s_client -connect your-domain.com:443 | openssl x509 -outform der | openssl dgst -sha256 -binary | openssl enc -base64

执行后会得到一串base64编码的哈希值,保存下来。

2. 配置Info.plist

在iOS项目的Info.plist文件中,添加或修改NSAppTransportSecurity字典,配置固定规则:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSPinnedDomains</key>
  <dict>
    <key>your-domain.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSPinnedCAIdentities</key>
      <array>
        <dict>
          <key>SPKI-SHA256</key>
          <string>这里替换成你获取的SHA-256哈希值</string>
        </dict>
      </array>
    </dict>
  </dict>
</dict>
  • NSIncludesSubdomains:设为true时,子域名也会应用该固定规则
  • 可以添加多个SPKI-SHA256条目,实现多证书备份(避免证书过期导致请求失败)

Android 实现步骤

1. 创建网络安全配置文件

在Android项目的res/xml目录下,新建network_security_config.xml文件(若xml目录不存在则手动创建),内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">your-domain.com</domain>
        <pin-set>
            <pin digest="SHA-256">这里替换成你获取的SHA-256哈希值</pin>
            <!-- 可选:添加备份证书的哈希值 -->
            <!-- <pin digest="SHA-256">备份证书的哈希值</pin> -->
        </pin-set>
    </domain-config>
</network-security-config>
  • cleartextTrafficPermitted="false":禁止明文HTTP请求
  • includeSubdomains="true":子域名同样应用规则
  • 建议添加至少一个备份证书哈希,防止主证书过期后应用无法访问服务

2. 关联配置到Manifest文件

打开AndroidManifest.xml,在application标签中添加networkSecurityConfig属性:

<application
  ...
  android:networkSecurityConfig="@xml/network_security_config">
  ...
</application>

注意事项

  • 证书更新时,务必同步更新配置中的哈希值,否则应用会无法建立连接
  • 测试阶段可以暂时关闭固定规则(iOS注释掉NSPinnedDomains,Android移除pin-set),方便调试
  • 该方案依赖原生网络栈,React Native的所有网络请求都会自动遵循配置规则

内容的提问来源于stack exchange,提问作者Sandeep Sidhardhan -

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:33:32