提问人:Waseem Kurne 提问时间:6/20/2023 最后编辑:jcubicWaseem Kurne 更新时间:7/18/2023 访问量:777
在 React Native 版本 0.71.8 中使用 axios 实现 react-native-ssl-pinning 时遇到问题
Trouble implementing react-native-ssl-pinning with axios in React Native version 0.71.8
问:
我在尝试在我的 React Native 项目中使用 react-native-ssl-pinning 库实现 SSL 固定时遇到了一个问题。具体来说,我使用的是 React Native 版本 0.71.8。
react-native-ssl-pinning 和 react-native-cert-pinner 都失败了
我按照文档并安装了必要的依赖项。但是,它会抛出此错误
以下是我到目前为止采取的步骤:
- npm 安装 axios react-native-ssl-pinning
- 导入必要的模块
- 配置 SSL 固定证书 (RNSSLPinning.pinningCheck(certificates);)
答:
我使用这种方法解决了这个问题
- 对于 IoS - 使用 TrustKit
- 对于 Android - 使用 OkHttp
IOS系统
打开应用的 AppDelegate.m 文件
通过在文件顶部添加以下行来导入 TrustKit 标头:
#import < TrustKit/TrustKit.h>
在 application:didFinishLaunchingWithOptions: 方法中,使用所需的 SSL 固定策略配置 TrustKit。例如:
(BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 你的其他代码...
NSDictionary *trustKitConfig = @{ kTSKSwizzleNetworkDelegates: @YES, kTSKPinnedDomains: @{ @"example.com": @{ kTSKPublicKeyHashes: @[ @"<public_key_hash_1>", @"<public_key_hash_2>" ], kTSKEnforcePinning: @YES } } }; [TrustKit initializeWithConfiguration:trustKitConfig]; // Your other code... return YES;
}
将 example.com 替换为要为其固定证书的服务器的主机名。<public_key_hash_1> 和 <public_key_hash_2> 应替换为服务器 SSL 证书中公钥的 SHA-256 哈希值。您可以使用 OpenSSL 等工具获取这些哈希值。
请注意,如果要为多个服务器固定证书,则 kTSKPinnedDomains 字典中可能有多个固定域。
生成并运行 React Native 应用
下一个:剥离上传文件的元数据信息
评论
RNSSLPinning
react-native link