Security 处理应用程序传输安全(kCFStreamErrorDomainSSL,-9802)

Security 处理应用程序传输安全(kCFStreamErrorDomainSSL,-9802),security,ssl,ios9,tls1.2,Security,Ssl,Ios9,Tls1.2,您运行以下代码: let URL = "https://www.nasa.gov/sites/default/files/wave_earth_mosaic_3.jpg" let imageData = NSData(contentsOfURL: NSURL(string: URL)!) UIImage(data: imageData!) 你会发现: 卡西尼号[21200:447896] NSURLSession/NSURLConnection HTTP加载失败 (kCFStreamError

您运行以下代码:

let URL = "https://www.nasa.gov/sites/default/files/wave_earth_mosaic_3.jpg"
let imageData = NSData(contentsOfURL: NSURL(string: URL)!)
UIImage(data: imageData!)
你会发现:

卡西尼号[21200:447896] NSURLSession/NSURLConnection HTTP加载失败 (kCFStreamErrorDomainSSL,-9802)

更深一点的挖掘表明使用了SHA1签名

maximveksler$ openssl s_client -connect www.nasa.gov:443 < /dev/null 2>/dev/null | openssl x509 -text -in /dev/stdin | grep "Signature Algorithm"
    Signature Algorithm: sha1WithRSAEncryption
    Signature Algorithm: sha1WithRSAEncryption
maximveksler$openssl s|U client-connect www.nasa.gov:443/dev/null | openssl x509-text-in/dev/stdin | grep“签名算法”
签名算法:Sha1WithRSA加密
签名算法:Sha1WithRSA加密
那么,截至2015年9月11日,NASA正在使用不安全的连接,现在该怎么办?

为什么会发生这种情况? 因为使用不安全的网络对用户隐私有害

从iOS9开始,苹果公司正在强制您的应用程序与通过HTTP访问的任何资源建立安全连接。这意味着您要连接的服务器需要遵循最新的安全连接最佳做法

截至2015年9月,这些措施包括:

  • 使用(而不是普通的http)
  • 使用以下命令签署证书:
  • 使用
有关更多信息,请访问

你能做什么? 管理自己的服务器?修好它!确保它们牢固可靠。您可以使用任何方法在线或本地测试服务器,以验证服务器是否正常

如果您正在连接到,则可以选择“白名单”有问题的资源,这是不鼓励的

降低特定URL的安全性 转到您的
Info.plist
并添加以下条目:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.nasa.gov</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
您的plist应该如下所示:

您能否告知应用程序传输安全是否强制执行端口443?或者我可以使用我想要的任何端口(用于RESTful API)?顺便说一句,不仅NASA,亚马逊的AWS HTTPS文件服务器目前都不符合应用程序传输安全要求。因此,如果您的应用程序依赖于AWS服务器上托管的资产,您将看到此错误。您是如何知道您发布的应用程序传输安全技术说明的?如何在不等待ios代码崩溃的情况下随时了解苹果的变化?@UsmanMutawakil我查看苹果的文档,关注WWDC的公告并观看讲座视频。阅读新闻和每周电子邮件,并在twitter上了解最新信息。这是我作为专业人士的责任。@MaximVeksler谢谢。我很羡慕那些有幸花那么多时间在一堆东西上的专业人士。