我想向需要客户端证书身份验证的服务器发出 HTTPS 请求。我研究了这个为 NSURLConnection Authentication Challenge 创建一个 SecCertificateRef。它按预期工作。
但是,它需要准备包含私钥的 p12 文件。它将受到保护,因为它需要密码才能使用 .p12 文件导入 p12 文件SecPKCS12Import()
。
但是,可能还有其他选择。也就是说,iOS 客户端应该发出证书签名请求(.CSR)并让第三方(服务器)对其进行签名。
对于我的搜索,我发现我可以使用它SecKeyGeneratePair()
来生成密钥对。但我没有看到任何生成 CSR 的 API。
我真的需要 OpenSSL 来实现这一点吗?
此外,一旦 iOS 客户端以某种方式收到签名证书,这有点离题了。我可以SecCertificateCreateWithData()
用来检索一个SecCertificateRef()
. 但是,要填写一个NSURLCredential
. 我还需要SecIdentityRef
使用来自 p12 文件的SecPKCS12Import()
. 我怎样才能检索一个SecIdentityRef
没有SecPKCS12Import()
但只有一个证书文件,如crt
or der
?