iOS允许用户信任某些证书吗?

兰普温斯

我正在开发一个注定要在IT企业中使用的应用程序。该应用程序将是管理系统的扩展,该管理系统通过VM映像分发给企业。这样做的问题是VM附带了一个自签名证书,并且已被锁定。显然,我在iOS中信任该证书时遇到问题。我知道我可以禁用验证,但这对于应用程序商店指定的产品来说是一个可怕的想法,毫无意义。所以我想知道,我有什么选择?

w

我知道我可以禁用验证,但这对于应用程序商店指定的产品来说是一个可怕的想法,毫无意义。所以我想知道,我有什么选择?

禁用验证是一个坏主意。

您需要实现-(BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace: (NSURLProtectionSpace*)space- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge在委托中信任服务器的证书。

Apple的官方文档位于“身份验证挑战”和“ TLS链验证”以及“正确覆盖TLS链验证”中

您可以在iOS示例的OWASP的Certificate and Public Key Pinning中看到它的示例。

因为您具有服务器证书的先验知识,所以可以将其直接编译到应用程序中并在运行时使用它。无需跳过箍将其放入钥匙串中。

由于您拥有受信任的分发渠道(App Store或组织的Enterprise Store),因此您不必担心篡改(免除一些人工操作)。

另请参见如何使用NSURLConnection与SSL连接以获得不受信任的证书?, 不过要小心。请注意,因为它实际上会通过始终返回来禁用验证[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];我指出这一点是因为它是iOS功能的一个SO答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章