在 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

提问人:Waseem Kurne 提问时间:6/20/2023 最后编辑:jcubicWaseem Kurne 更新时间:7/18/2023 访问量:777

问:

我在尝试在我的 React Native 项目中使用 react-native-ssl-pinning 库实现 SSL 固定时遇到了一个问题。具体来说,我使用的是 React Native 版本 0.71.8。

react-native-ssl-pinning 和 react-native-cert-pinner 都失败了

我按照文档并安装了必要的依赖项。但是,它会抛出此错误enter image description here

以下是我到目前为止采取的步骤:

  1. npm 安装 axios react-native-ssl-pinning
  2. 导入必要的模块
  3. 配置 SSL 固定证书 (RNSSLPinning.pinningCheck(certificates);)
react-native 安全 SSL 跨平台 证书固定

评论

0赞 Waseem Kurne 6/20/2023
即使这个页面也没有帮助:reactnative.dev/docs/security#ssl-pinning
0赞 jcubic 6/23/2023
你能分享你的代码吗?你如何导入?RNSSLPinning
0赞 Waseem Kurne 6/23/2023
import { RNSSLPinning } from 'react-native-ssl-pinning';
0赞 jcubic 6/23/2023
也许你需要运行react-native link
0赞 Waseem Kurne 6/23/2023
react-native v0.71.8 进行自动链接

答:

0赞 Waseem Kurne 7/3/2023 #1

我使用这种方法解决了这个问题

  1. 对于 IoS - 使用 TrustKit
  2. 对于 Android - 使用 OkHttp

IOS系统

  1. 打开应用的 AppDelegate.m 文件

  2. 通过在文件顶部添加以下行来导入 TrustKit 标头:

    #import < TrustKit/TrustKit.h>

  3. 在 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 字典中可能有多个固定域。

  4. 生成并运行 React Native 应用