Handling App Transport Security (kCFStreamErrorDomainSSL, -9802)

家住魔仙堡 提交于 2019-11-28 12:14:44
Maxim Veksler

Why did it happen?

Because using insecure web is bad for your users privacy.

Beginning with iOS9 Apple are enforcing secure connections your app makes to any resource accessed via HTTP. This means that the server you are connecting to needs to follow up to date secure connection best practices.

As of Sep, 2015 these include:

More info can be found at App Transport Security Technote

What can you do?

Manage your own servers? Fix it! make sure they are strong and secure. You can verify that your server is good by testing it online with shaaaaaaaaaaaaa.com or locally with any of the methods outline here

If you are connecting to other servers, there are options to "white list" problematic resources, this is discouraged.

Decrease security of a specific URL

Go to your Info.plist and add the following entries:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.nasa.gov</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Your plist should look like this:

Globally turn off App Transport Security

Note, this is a really really bad idea.

Go to your Info.plist and add the following entries:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

Your plist should look like this:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!