0
我沒有在什麼情況下,下面的情況發生(代碼片段從AFSecurityPolicy.m,AFPublicKeyForCertificate功能,AFNetwork框架)瞭解一個證書:不同的結果SecTrustEvaluate針對不同的政策
policy = SecPolicyCreateBasicX509();
AF_Require_noErr(SecTrustCreateWithCertificates(tempCertificates, policy, &allowedTrust), _out);
AF_Require_noErr(SecTrustEvaluate(allowedTrust, &result), _out);
//result = 5 (kSecTrustResultRecoverableTrustFailure)
//different policy
policy = SecPolicyCreateSSL(true, (__bridge CFStringRef)@"www.MySite.com");
AF_Require_noErr(SecTrustCreateWithCertificates(tempCertificates, policy, &allowedTrust), _out);
AF_Require_noErr(SecTrustEvaluate(allowedTrust, &result), _out);
//result = 4 (kSecTrustResultUnspecified)
證書有效期並沒有過期。簽名算法SHA-1。不明白爲什麼它會返回kSecTrustResultRecoverableTrustFailure而不是kSecTrustResultUnspecified for SecPolicyCreateBasicX509。
謝謝你的回答,但我認爲你沒有明白我的意思。 SecPolicyCreateSSL比SecPolicyCreateBasicX509更強大,因爲x509可以做什麼並且還可以進行主機名驗證。但我不明白爲什麼更強大的政策評估好,政策沒有更好。 – 2014-10-14 09:53:54
你好馬特,你能指點我的任何資源,以更好地瞭解如何管理證書鏈的信任評估kSecTrustResultRecoverableTrustFailure返回代碼?特別是我無法理解如何驗證證書是否過期(以及哪一個在鏈中)並最終忽略它。 – valeCocoa 2017-04-06 13:21:11