0

首先,如果之前已经回答过,请原谅我。我经历了很多帖子,但没有一个能帮助我,有点。

我的意思是,我没有尝试对任何框架类进行子类化以挂钩到证书验证过程。

我是 Swift3.1/iOS 编程和编写应用程序以熟悉它的新手。

我在这里查看了 Apple 的文档https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW34

我在 Info.plist 中尝试了许多设置,但没有一个对我有用。奇怪的是它昨天工作。

这是我的 Info.plist 文件中的相关文本

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>example.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionMinimumTLSVersion</key>
            <string>TLSv1.0</string>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

我也试过

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

服务器具有其 CA 的签名证书。我猜这是问题所在,但他们也没有严格执行 TLSv1.2,尽管他们应该是。我已引起他们的注意,但他们尚未解决此问题。这是真正令人困惑的部分,令人困惑的部分是它昨天工作。我什至在我的设备上部署了一个工作应用程序。我说有,因为我再次将它部署到我的设备上,看看是否可以工作,但它没有:(。

这是我用来提取数据的代码

        let url = URL(string: "https://public.example.net/index.txt")
        let indexText = try! String.init(contentsOf: url!, encoding: String.Encoding.utf8)

我收到以下错误

2016-11-25 15:27:54.051 ExamleApp[12722:1108324] NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)错误域 = NSCocoaErrorDomain 代码 = 256“无法打开文件“index.txt”。UserInfo={NSURL= https://public.example.net/index.txt }

我在 iOS 模拟器和我的 iPhone 6+ 上都试过这个,得到了同样的错误。如果我在设备或模拟器上访问 Safari 中的网站,则在我信任证书后该网站正常运行,但应用程序无法运行。

此外,该 URL 已被清理,因此如果发现它与问题无关。

感谢您查看我的问题,如果您有任何可能错误的想法,请说明。

泰森

4

0 回答 0