【发布时间】:2015-07-07 02:46:48
【问题描述】:
我正在尝试使用 AFNetworking 2.5.4(带有 Comodo 证书)制作固定 SSL。 我从服务器获取我的证书 (CER)。
openssl s_client -connect example.com:443 -showcerts
获取第一个 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 之间的输出并将其保存到 example.pem
从 PEM 转换为 CER (DER):
openssl x509 -outform der -in example.pem -out example.cer
然后,我将 example.cer 添加到我的 Xcode 项目中,并将其添加到“复制捆绑资源”构建阶段。我的安全策略是:
let securityPolicy = AFSecurityPolicy(pinningMode: AFSSLPinningMode.PublicKey)
let certificatePath = NSBundle.mainBundle().pathForResource("example", ofType: "cer")!
let certificateData = NSData(contentsOfFile: certificatePath)!
securityPolicy.pinnedCertificates = [certificateData];
securityPolicy.validatesDomainName = true
securityPolicy.allowInvalidCertificates = false
securityPolicy.validatesCertificateChain = false
manager.securityPolicy = securityPolicy
有了这个 SSL Pininning 工作,但我不仅要验证我更改的叶证书
securityPolicy.validatesCertificateChain = true
但是使用该配置会引发以下错误:
Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)
我已阅读 if securityPolicy.validatesCertificateChain = true 我必须输入整个 SSL 证书链但我不知道如何生成它。
我尝试使用以下代码但不起作用(我得到相同的错误):
openssl s_client -connect example.com:443 </dev/null 2>/dev/null | openssl x509 -outform DER > example.cer
如何获取整个 SSL 证书链以添加到 Xcode?p>
【问题讨论】:
标签: ios ssl afnetworking afnetworking-2