当前位置: 首页 > 面试题库 >

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

张鸿宝
2023-03-14
问题内容

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

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

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

  • iOS 9.3
  • XCode 7.3
  • 斯威夫特2.2
  • Alamofire 3.3.0
  • 和本地服务器:https : //filename.hostname.net

注意: 在假定它是重复的之前,我要求请一路阅读,即使我已经向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天没有运气:(

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

  • 传输安全已阻止明文HTTP
  • iOS9收到错误“发生ssl错误,无法建立与服务器的安全连接”
  • 如何在iOS 9中启用“应用程序传输安全性”的情况下加载HTTP URL?[重复]
  • CFNetwork SSLHandshake失败的iOS 9
  • 如何在iOS中处理“ CFNetwork SSLHandshake失败”
  • 使用自签名证书在iOS 9中发出HTTPS请求
  • ios9自签名证书和应用程序传输安全

发布Alamofire git问题

  • 执行非SSL请求#538时出现“ CFNetwork SSLHandshake失败(-9847)”错误
  • 不接受自签名证书#876
  • 如何使用自签名证书文件#977将服务器作为HTTPS连接

我的 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

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


问题答案:

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

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

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

可能是以下一项或多项

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


 类似资料:
  • 在登录时出现: 或 登录时如果出现上图的错误,通常有如下原因: 1、IIS没有正常启动。 正常启动应如下图所示: 2、服务器有防火墙,请关闭防火墙 或者 开放 80 端口(或你设置的其它的端口号)。 上图就是操作系统自带防火墙开放80端口的操作界面,如果有第三方的防火墙也必须这么做。 3、验证客户端与服务器的通讯是否正常,可以在客户机上打开IE浏览器,在地址栏中输入:http://网络服务器的IP

  • 我在Windows10机器上尝试将RabbitMQ(3.6.11版本与Erlang 20一起安装)连接到ZipKin,但我得到了以下错误: 原因:org.springframework.beans.factory.unsatisfieddependencyException:创建名为“server configurator”的bean时出错,该bean在zipkin2.server.interna

  • 我在连接到SQL数据库时遇到问题。每当我尝试连接到SQL server时,都会出现以下错误; 这是使用 每当我使用JtDS驱动程序时(如本文所建议的),我仍然无法连接到SQL server,并出现以下错误。 我使用的连接字符串:(使用jtds) 或者不使用jtds时... 我还有一个服务器,它实际上能够使用这些配置运行并连接到数据库。我只是在本地连接数据库时不断遇到这些错误。 我正在运行macOS

  • 问题内容: 我试图使用JDK 1.8和MySQL Connector / J版本5.1.23安全地连接到Amazon RDS,并且对MySQL Connector / J文档中 的说明感到困惑。 说明说明要在当前目录中创建信任库并导入服务器的CA证书。当我运行以下命令时,系统会要求我输入密码,但我不知道输入什么: 另一方面,Amazon的说明指出证书由证书颁发机构签名。SSL证书包括数据库实例终结

  • OpenSSL版本:OpenSSL 1.1.0g 要创建证书,我运行以下命令: openssl genrsa-des3-out server.key 2048 openssl x509-请求-天数365-输入server.csr-签名密钥server.key-输出server.crt ...新的TLSV1.2密码是AES256-GCM-SHA384 服务器公钥为2048位 支持安全重新协商 ...

  • 我们正在从我们的WAS(网络领域)连接到SQL服务器。在我们对服务器中存在的数据进行加密并将连接作为SSL之前,连接SQL正常。从那时起,我们收到SSL连接错误。但我们已将证书安装在WAS控制台的可信密钥存储下。以下是错误。感谢任何帮助。提前谢谢。 无法获取JDBC连接;嵌套异常为com。ibm。websphere。总工程师。厘米StaleConnectionException:[IBM][SQL