将应用程序中的自签名 SSL 证书列入白名单?
Whitelist self-signed SSL cetificates in an app?
场景是这样的,我们有一个移动应用程序,它通过 https 与我们的后端服务器通信,该应用程序有原生模块和 HTML5 部分嵌入了 webview/Cordova,所以一些https 通信来自本机调用,而其他通信来自 ajax 调用。我们想为我们的后端服务器使用自签名 SSL 证书,该证书已经用于我们现有的一些 Web 应用程序。
对于过去的网络应用,我们只需要指示我们的客户将我们的自签名证书添加到浏览器的受信任证书库中就可以了。我想知道我应该如何让我们的移动应用程序将我们的自签名证书列入白名单,尤其是在连接来自 webview/Cordova 嵌入式 HTML5 部分的 ajax 调用时。目前看来我可以配置 webview 来抑制所有 SSL 错误并接受所有自签名证书,但是如果我只想将我们自己的自签名证书列入白名单怎么办?
例如,服务器地址是 192.168.12.25,我为该 IP 地址创建了自己的自签名证书,我希望我们的移动应用程序只将 192.168.12.25 的这个特定自签名证书识别为有效,不是任何其他任意自签名证书。
您需要的是 SSL 固定。您必须将服务器的自签名证书嵌入到应用程序中,并从中构建一个 TrustManager。请参阅 https://developer.android.com/training/articles/security-ssl#UnknownCa 了解更多详情。
场景是这样的,我们有一个移动应用程序,它通过 https 与我们的后端服务器通信,该应用程序有原生模块和 HTML5 部分嵌入了 webview/Cordova,所以一些https 通信来自本机调用,而其他通信来自 ajax 调用。我们想为我们的后端服务器使用自签名 SSL 证书,该证书已经用于我们现有的一些 Web 应用程序。
对于过去的网络应用,我们只需要指示我们的客户将我们的自签名证书添加到浏览器的受信任证书库中就可以了。我想知道我应该如何让我们的移动应用程序将我们的自签名证书列入白名单,尤其是在连接来自 webview/Cordova 嵌入式 HTML5 部分的 ajax 调用时。目前看来我可以配置 webview 来抑制所有 SSL 错误并接受所有自签名证书,但是如果我只想将我们自己的自签名证书列入白名单怎么办?
例如,服务器地址是 192.168.12.25,我为该 IP 地址创建了自己的自签名证书,我希望我们的移动应用程序只将 192.168.12.25 的这个特定自签名证书识别为有效,不是任何其他任意自签名证书。
您需要的是 SSL 固定。您必须将服务器的自签名证书嵌入到应用程序中,并从中构建一个 TrustManager。请参阅 https://developer.android.com/training/articles/security-ssl#UnknownCa 了解更多详情。