iphone - 应用程序钥匙串(keychain)中带有自签名证书的 HTTPS

标签 iphone keychain self-signed

我必须通过 HTTPS 将我的 iPhone 应用程序连接到具有自签名证书的服务器。我无法更改证书或服务器。

由于我不想接受所有自签名证书,只是这个,我的想法是将证书导入到应用程序钥匙串(keychain)中(从文件中读取证书并将其添加到钥匙串(keychain)中 SecItemAdd)。

如果我在模拟器中运行应用程序,安装证书,然后在钥匙串(keychain)中搜索它(使用SecItemCopyMatching),则会找到证书,但连接仍然失败,并显示“不受信任”服务器证书”错误。

这是模拟器还是我的应用程序的问题?我还需要做其他事情才能使其发挥作用吗?或者我可以假设,如果我将证书添加到真实设备上的钥匙串(keychain),则与服务器的连接将会成功(我正在使用 NSURLConnection.sendSynchronousRequest)?

感谢您的帮助!

最佳答案

您可以使用ASIHTTPRequest图书馆。它允许通过将 ASIHTTPRequest 对象的 validatesSecureCertificate 属性设置为 NO 来忽略证书验证。

关于iphone - 应用程序钥匙串(keychain)中带有自签名证书的 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056730/

相关文章:

iphone - 保留、分配、属性...让您的 Obj-c 生活更轻松的主题!

iphone - iPhone 应用程序可以在启动时启动吗?

node.js - Electron 中的自签名证书

ios - Objective-C:评估由我们自己的 PKI(根 CA)在 TLS TCP 连接上签名的服务器证书

windows - Windows 10及以下系统如何创建域名自签名证书用于开发?

iphone - 如何去掉UISearchBar下方多余的黑线?

ios - Apple iOS 生产证书 - [ KeyChain Group ]

ios - 拒绝 Codesign 访问钥匙串(keychain)后,Xcode 不允许为设备构建

iphone - 收到 "A valid signing identity matching this profile could not be found in your keychain"警告

iphone - Objective-C 私有(private)方法困境