Max*_*ler 7 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!)
Run Code Online (Sandbox Code Playgroud)
你得到这个:
2015-09-11 16:33:47.433 Cassini [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
Run Code Online (Sandbox Code Playgroud)
截至2015年9月11日,美国宇航局正在使用不安全的连接,现在是什么?
Max*_*ler 12
因为使用不安全的网络对您的用户隐私不利.
从iOS9 Apple开始,Apple会强制您的应用程序与通过HTTP访问的任何资源建立安全连接.这意味着您要连接的服务器需要遵循最新的安全连接最佳实践.
截至2015年9月,这些包括:
更多信息可以在App Transport Security Technote找到
管理自己的服务器?修理它!确保它们坚固且安全.您可以验证您的服务器是在线测试它好shaaaaaaaaaaaaa.com用任何方法概述或局部这里
如果您要连接到其他服务器,则可以选择"列出白名单"有问题的资源,这是不鼓励的.
转到您的Info.plist并添加以下条目:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.nasa.gov</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个非常糟糕的主意.
转到您的Info.plist并添加以下条目:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)