是否可以使用ios中的安全框架生成证书签名请求(.csr)?

是否可以使用ios中的安全框架生成证书签名请求(.csr)?,第1张

概述我想用服务器进行https请求需要客户端证书身份验证.我调查了这个 Creating a SecCertificateRef for NSURLConnection Authentication Challenge.它按预期工作. 但是,它需要准备包含私钥的p12文件.这将是安全的,因为它需要密码才能使用SecPKCS12Import()导入p12文件. 但是,可能还有其他选择.那就是ios-cl 我想用服务器进行https请求需要客户端证书身份验证.我调查了这个 Creating a SecCertificateRef for NSURLConnection Authentication Challenge.它按预期工作.

但是,它需要准备包含私钥的p12文件.这将是安全的,因为它需要密码才能使用SecPKCS12import()导入p12文件.

但是,可能还有其他选择.那就是ios-clIEnt应该签署证书签名请求(.CSR)并让第三方(它将是服务器)签名.

对于我的搜索,我看到我可以使用SecKeyGeneratePair()来生成密钥对.但我没有看到任何生成CSR的API.

真的需要openssl才能实现这个目标吗?

此外,有点偏离主题,一旦ios-clIEnt以某种方式取回签名证书.我可以使用SecCertificateCreateWithData()来检索SecCertificateRef().但是,要填写NSURLCredential.我还需要使用来自p12文件的SecIDentityRef
SecPKCS12import().如何在没有SecPKCS12import()但只是像crt或der这样的证书文件的情况下撤销SecIDentityRef?

解决方法 iOS中的安全框架中没有明确支持CSR.但是,“手动”构建CSR并不困难 – 它只是iOS运行时可用的ASN.1 DER数据块.

这是伪代码:

>使用Security Framework中的SecKeyGeneratePair()创建新的公钥/私钥
>实现getPublicKeyBits方法以检索NSData形式的新公钥(请参阅https://developer.apple.com/library/ios/samplecode/CryptoExercise/Introduction/Intro.html)
>实现getPrivateKey方法从Keychain中检索SecKeyRef
>按照http://www.ietf.org/rfc/rfc2986.txt在NSMutableData中构建CSR的ASN.1 DER
>使用CC_SHA1_ *创建认证请求信息的签名哈希(CSR的一部分)
>使用SecKeyRawSign和私钥来签署CSR

这将创建适当的CSR(以NSData的形式),可以发送给CA进行审批.

我的实现可以在GitHub上找到:http://github.com/ateska/ios-csr.

总结

以上是内存溢出为你收集整理的是否可以使用ios中的安全框架生成证书签名请求(.csr)?全部内容,希望文章能够帮你解决是否可以使用ios中的安全框架生成证书签名请求(.csr)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1076482.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存