gpt4 book ai didi

ios:公钥 SSL 固定返回 Nil

转载 作者:可可西里 更新时间:2023-11-01 01:36:45 32 4
gpt4 key购买 nike

我已将我的 SSL 证书的公钥作为 .crt 保存到我的 xcode 项目中,并尝试使用 Alamofire 通过 https 连接到我的网站。一直失败的部分是使用 SecCertificateCreateWithData,它返回 nil,如下所示:

 func configureAlamoFireSSLPinningWithCertificateData() {

let cert = "nameOfCert"
let pathToCert = NSBundle.mainBundle().pathForResource(cert, ofType: "crt")
let certificateData:NSData = NSData(contentsOfFile: pathToCert!)!
let localCertificate = SecCertificateCreateWithData(nil, certificateData)! //RETURNS NIL

self.serverTrustPolicy = ServerTrustPolicy.PinCertificates(
certificates: [localCertificate],
// Choose to validate the complete certificate chain, not only the certificate itself
validateCertificateChain: true,
// Check that the certificate mathches the host who provided it
validateHost: true
)

self.serverTrustPolicies = [
"nameOfTrustedServer": self.serverTrustPolicy!
]
self.afManager = Manager(
configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
}

我查看了项目中的证书,一切似乎都很好,我还可以打印 certificateData 并获得格式正确的结果。

问题是我只保存了公钥而不是整个证书吗?出于明显的安全原因,我想避免这样做,但我似乎无法弄清楚为什么它在尝试创建 Sec 证书时返回 nil。

提前致谢!

最佳答案

终于弄明白了,问题出在我的证书上,尽管它看起来是正确的。我通过 openssl 将它重新保存为 .cer 来修复它,这修复了它。奇怪的是,当我试图在 sublime 或记事本中将它重新保存为 .cer 时,即使 Xcode 显示它们相同,它也不起作用,直到我从每个打印 NSData 并显示它们不同。

关于ios:公钥 SSL 固定返回 Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482311/

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