小编典典

iOS 9.3:发生SSL错误,无法建立与服务器的安全连接

swift

我的自签名证书出现以下错误

错误域= NSURLErrorDomain代码= -1200“发生SSL错误,无法建立与服务器的安全连接。

在测试我的一个演示应用程序的Web服务时

注意: 在假定它是重复的之前,我要求请一路阅读,即使我已经向Apple开发者论坛报告过

使用 Alamofire库


func testAlamofireGETRequest() -> Void
    {
        Alamofire.request(.GET, "https://filename.hostname.net/HelloWeb/service/greeting/john")
            .responseJSON
        { response in
            print("Response JSON: \(response.result.value)")
        }
}

使用 NSURLSession


func testNSURLSessionRequest() -> Void {

        let session = NSURLSession.sharedSession()
        let urlString = "https://filename.hostname.net/HelloWeb/service/greeting/john"
        let url = NSURL(string: urlString)
        let request = NSURLRequest(URL: url!)
        let dataTask = session.dataTaskWithRequest(request) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in
            print("done, error: \(error)")

            //Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made.
        }
        dataTask.resume()
    }

我花了2天没有运气:(

已经发布了一堆问题,但对我没有任何帮助

发布Alamofire git问题


我的 Info.pist 文件以这种方式更新了ATS设置

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>filename.hostname.net</key>
            <dict>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>

同时,我能够得到回应

HTTP ://filename.hostname.net

HTTPS ://google.com

不是 HTTPS ://filename.hostname.net

谁能建议我,为什么我在付出巨大努力后仍无法正常工作?


阅读 2097

收藏
2020-07-07

共1个答案

小编典典

在OS X的命令行中,运行以下命令:

nscurl --ats-diagnostics https://filename.hostname.net --verbose

这将告诉您ATS设置的哪些组合将允许和不允许iOS访问您的网站,并应向您指出您的网站出了什么问题。

可能是以下一项或多项

  • 证书哈希算法(必须为SHA-256或更高版本)
  • TLS版本(必须为1.2)
  • TLS算法(必须提供完善的前向保密性)
2020-07-07