gpt4 book ai didi

ios - 使用 AFNetworking 进行 SSL 固定 - validatesCertificateChain = true

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:29 27 4
gpt4 key购买 nike

我正在尝试使用 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 项目并将其添加到“复制捆绑资源”构建阶段。我的 SecurityPolicy 是:

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.)

我读过如果 securityPolicy.validatesCertificateChain = true 我必须输入整个 SSL 证书链,但我不知道如何生成它。

我尝试了以下代码但没有成功(我得到了同样的错误):

openssl s_client -connect example.com:443 </dev/null 2>/dev/null | openssl x509 -outform DER > example.cer

如何获取整个 SSL 证书链以添加到 Xcode?

最佳答案

您还必须将所有中间 CA 证书添加到 securityPolicy.pinnedCertificates 以验证整个链。

关于ios - 使用 AFNetworking 进行 SSL 固定 - validatesCertificateChain = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31258911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com