如何以编程方式在本机层 Android 中实现 SSL 证书固定

How to implement SSL Certificate Pinning in Native Layer Android programmatically

我已经为我的 Android Studio 开发的应用程序成功实施了 SSL 证书固定。

我正在使用网络服务请求和响应使用 XML 协议。

我已经在我的应用程序中完成了 Java 层 ssl 固定,为了这个固定目的,我使用了存储在 app raw 文件夹中的两个证书 .crt.bks 文件。

但是,当审核团队获得对应用程序的访问权限时,他们破坏了 SSL 固定,他们建议使用本机层 SSL 证书固定实现,而不是 Java 层 SSL 证书固定。

我已阅读 this link 关于本机层 SSL 证书固定的实施。但是,我没看懂。

请推荐一个很好的原生层固定示例。

实际上,我正在使用 Async Task Web 服务调用从移动应用程序到服务器的请求和响应。在那个地方,我已经实现了 SSL Pinning 来调用从移动应用程序到服务器端的 Web 服务请求。 此方法需要 Java 层 SSL Pinning 实施。

我的审计团队建议使用本机层 SSL Pinning,同时从移动设备调用 Web 服务到服务器请求,而不是 Java 层 SSL Pinning。首先,我不了解那种类型。

最后,我找到了解决方案,他们建议用户使用 Native 层方法,使用 Volley,Retrofit Library 用于 Web 服务请求和响应调用。

他们建议使用默认 Http 减少默认异步调用以访问 Web 服务。与其建议使用 Volley,不如改用 SSL Pinning 实现的移动请求和响应。

注意:谁都已经实现了SSL,他们很容易理解这个建议。