我想使用需要客户端证书认证的服务器进行HTTPS请求。我查看了这个Creating a SecCertificateRef for NSURLConnection Authentication Challenge。它如预期一样工作。
但是,它需要准备包含私钥的p12文件。由于需要密码才能使用SecPKCS12Import()
导入p12文件,因此它将得到保护。
但是,还有另一个选择。即iOS客户端应该制作证书签名请求(.CSR),并让第三方(服务器)签名它。
在我的搜索中,我发现可以使用SecKeyGeneratePair()
生成密钥对。但是我没有看到任何生成CSR的API。
我真的需要OpenSSL来实现这个吗?
另外,有一点偏题,一旦iOS客户端以某种方式接收到签名证书。我可以使用SecCertificateCreateWithData()
检索SecCertificateRef()
。但是,为了填充NSURLCredential
,我还需要SecIdentityRef
,它来自使用SecPKCS12Import()
的p12文件。如何在没有SecPKCS12Import()
但只有像crt
或der
这样的证书文件的情况下检索SecIdentityRef
?
OpenSSL
以生成CSR文件。为了在没有p12文件的情况下获取SecIdentityRef
,我查看了这个。 - Yeung