【发布时间】:2013-06-21 02:25:19
【问题描述】:
我想向需要客户端证书身份验证的服务器发出 HTTPS 请求。我调查了这个Creating a SecCertificateRef for NSURLConnection Authentication Challenge。它按预期工作。
但是,它需要准备包含私钥的 p12 文件。它将受到保护,因为它需要密码才能使用 SecPKCS12Import() 导入 p12 文件。
但是,可能还有其他选择。也就是说,iOS 客户端应该发出证书签名请求(.CSR)并让第三方(服务器)对其进行签名。
对于我的搜索,我发现我可以使用SecKeyGeneratePair() 来生成密钥对。但我没有看到任何生成 CSR 的 API。
我真的需要 OpenSSL 来实现这一点吗?
另外,有点离题了,一旦 iOS 客户端以某种方式收到签名证书。我可以使用SecCertificateCreateWithData() 来检索SecCertificateRef()。但是,要填写NSURLCredential。我还需要使用SecPKCS12Import() 来自p12 文件的SecIdentityRef。如何在没有 SecPKCS12Import() 的情况下检索 SecIdentityRef 而只是像 crt 或 der 这样的证书文件?
【问题讨论】:
-
我最终构建了
OpenSSL来生成CSR 文件。要在没有 p12 文件的情况下获得SecIdentityRef,我查看了 this
标签: ios ssl openssl ssl-certificate csr