変数マネージャー: AFHTTPSessionManager
init() {
manager = AFHTTPSessionManager()
manager.requestSerializer = AFJSONRequestSerializer()
manager.responseSerializer = AFJSONResponseSerializer()
let securityPolicy = AFSecurityPolicy(pinningMode: AFSSLPinningMode.Certificate)
let certificatePath = NSBundle.mainBundle().pathForResource("c38acbe05a6328ee", ofType: "crt")!
let certificateData = NSData(contentsOfFile: certificatePath)!
securityPolicy.pinnedCertificates = [certificateData]
securityPolicy.validatesDomainName = false
securityPolicy.allowInvalidCertificates = false
manager.securityPolicy = securityPolicy
}
私はこれをしばらくの間機能させようとしてきました。Swift のドキュメントは不足していますが、obj-c を読むのが上手になってきました。証明書はPEM形式です。私はそれを試し、.der形式に変換しました。Der 形式は init() で爆発し、.PEM 形式は evaluateServerTrust で爆発します。AFNetworking 2.5.1 で試し、3.0.4 にアップグレードしました - 同じ問題です。以下の true と false のすべての組み合わせを試しました。
securityPolicy.validatesDomainName = false securityPolicy.allowInvalidCertificates = false
どんな洞察も大歓迎です。ありがとうございました