商店&a​​mp;在iPhone的钥匙串中访问x509证书

时间:2012-05-14 17:03:42

标签: iphone ssl https

第三方应用程序可以访问iPhone的钥匙串以便为其添加X509证书吗?如果是的话,怎么办呢? 如果没有,它可以访问钥匙串只是为了从中读取证书吗?

基本上,我需要的是:
1)我的应用程序需要访问https站点,该站点使用未由任何可信CA签名的证书。当试图通过https连接时,我得到一个例外 2)如果我能以编程方式将根证书添加到钥匙串中,那就太棒了。如果用户可以通过Safari访问该站点,接受其证书,然后使用我的应用程序访问该站点就足够了。

到目前为止,我一直在使用以下界面来超越https:

@interface NSURLRequest (DummyInterface)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end

但这并不是我想要的。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

This Apple document应记录足够的内容以允许将自签名证书(或自签名证书颁发机构)添加到钥匙串中,并使其受信任。不过,我没有测试过。 Source

另见top answer on this question。但是,它似乎并没有真正验证证书的有效性。 Cocoanetics还记录了how to use NSURLConnection with self-signed certificates,同样似乎也没有验证有效性。

所以,你几乎肯定想要遵循Apple的指示。 “从* .P12文件中提取和评估标识”部分似乎包含有关如何导入证书的完整示例,即使是使用密码保护的证书也是如此。

将其与"AdvancedURLConnections" sample codeServerTrustChallengeHandler课程相结合,你应该很高兴。


这里也是a more complete example by Vanja Komadinović

相关问题