# Alamofire HTTPS 证书信任

911 阅读1分钟

问题描述?

1: 线上app无法登陆、经过测试postman很正常、唯独本地app和线上无法登陆?

分析结果?

1: 经过本地调试测试、发生了错误"NSURLErrorDomain error code -999" NSURLErrorDomain error code -999 in iOS

2: 本地验证结果可以成功:强制信任服务器证书 Alamofire HTTPS 证书信任 代码粘贴

        self.sessionManager.delegate.sessionDidReceiveChallenge = { session, challenge in
            var disposition: URLSession.AuthChallengeDisposition = .performDefaultHandling
            var credential: URLCredential?

            if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust {
                disposition = URLSession.AuthChallengeDisposition.useCredential
                credential = URLCredential(trust: challenge.protectionSpace.serverTrust!)
            } else {
                if challenge.previousFailureCount > 0 {
                    disposition = .cancelAuthenticationChallenge
                } else {
                    credential = manager.session.configuration.urlCredentialStorage?.defaultCredential(for: challenge.protectionSpace)

                    if credential != nil {
                        disposition = .useCredential
                    }
                }
            }
            return (disposition, credential)
        }

3: 本地更新证书?

1: 先将域名如customer.bmwgroup.cn/, 拷贝在google网页是那个、下载下来然后替换本地即可 Mac用chrome获取https的证书