react-native - React-Native axios https
问题描述
react-native 如何为 HTTPS 请求使用自签名证书?
axios({
method: 'POST',
url: url,
headers: headers,
data: params,
timeout: timeout,
// httpsAgent: new https.Agent({ rejectUnauthorized: false }),
})
解决方案
我能够使用TrustKit在我的 React Native Application 的 iOS 部分启用 SSL 固定。我也在使用 Axios 进行服务器交互。有两种方法可以实现 TrustKit,通过代码或使用 Info.plist。我已经使用了 Info.plist,您可以在下面找到相同的实现:
- 在您的 podfile 中添加并安装 TrustKit。(
pod 'TrustKit'
) - 打开你的 Info.plist 作为源代码添加下面的代码。
<key>TSKConfiguration</key>
<dict>
<key>TSKSwizzleNetworkDelegates</key>
<true/>
<key>TSKPinnedDomains</key>
<dict>
<key>yourDomain.com</key>
<dict>
<key>TSKPublicKeyHashes</key>
<array>
<string>public key 1</string>
<string>public key 2</string>
</array>
<key>TSKPublicKeyAlgorithms</key>
<array>
<string>TSKAlgorithmRsa2048</string>
</array>
<key>TSKIncludeSubdomains</key>
<true/>
<key>TSKEnforcePinning</key>
<true/>
</dict>
</dict>
</dict>
需要注意的重要事项:
TSKSwizzleNetworkDelegates
需要设置为真。yourDomain.com
是您的 API 的基本 URL。public Key 1
并且public Key 2
是您的 API 的公钥。您可以在此处获取任何公共域的公钥TSKEnforcePinning
可用于通过分别将其设置为true
/来启用/禁用 SSL 固定false
。(如果您希望暂时启用/禁用它)- 有关更多详细信息,请查看TrustKit 文档
推荐阅读
- google-app-engine - Google Cloud 错误报告的解析规则是什么?
- security - Workday 中这些任务的安全性,“创建财务摘要计划”和“编辑财务摘要计划”
- cudnn - 如何使用指定的 cuda 和 cudnn 构建 caffe2?
- python - Django-Ajax:这是将数据返回给 Ajax 请求的最 Pythonic 的吗?
- python - Python 字典:运行自定义函数
- c# - 如何从平面缓冲区模式中的任何表中检索字段
- node.js - 通过不同属性进行动态查询(Node.js)
- java - log4j2 日志没有被写入文件
- matlab - 如何找到可以从 MATLAB 中的分区访问的单元分区?
- angular - 具有不同属性名称的 Typescript 映射类型