【发布时间】:2018-07-29 00:44:36
【问题描述】:
这个周末我在这个问题上转了一圈,不知道下一步该去哪里。
背景:我想使用 HTTPS 针对我的本地 Tomcat 服务器测试我的 iOS 应用程序。我已经创建了自己的 CA 根证书和数字身份证书,但是当我通过 xcode 将物理 iphone 上的应用程序连接到本地主机上的 Tomcat 服务器时出现错误。
我得到的错误是: NSURLErrorDomain 代码:18446744073709550416 _kCFStreamErrorCodeKey: -9800
(来自 xcode 的屏幕截图): screencapture of error in xcode
设置: 1)我有一个在本地主机上运行的Tomcat服务器(在我的macbook上)。我已经安装了 xcode,并且正在模拟器上运行 iOS 应用程序;我的物理 iphone 也连接到我的 macbook。
我的server.xml文件如下:
2) 我有一个运行在 AWS 上的 tomcat 服务器的镜像,带有来自 ssls.com 的签名密钥,一切正常。
3) 另外,我可以通过 HTTP 在我的应用程序和本地主机上的 tomcat 服务器之间成功连接,而不会出现问题。
http://localhost:8080/thetest/thetest
4) 我可以毫无问题地通过 https 将模拟器连接到我的 tomcat。 (以前我无法连接,并且遇到了与物理 iPhone 设备上类似的错误。)
https://localhost:8443/thetest/thetest
证书:
我按照这些说明打了个球。
https://developer.apple.com/library/content/technotes/tn2326/_index.html#//apple_ref/doc/uid/DTS40014136
测试: A) 我可以在我的 macbook 上通过 chrome 和 safari 执行命令,并毫无问题地连接到我的 tomcat 服务器——没有警告。
B) 我可以连接到我的 iOS 模拟器并且连接没有问题。
2018-02-18 10:07:26.741348-0800 folie[13634:1105541] [MC] 延迟加载 NSBundle MobileCoreServices.framework
2018-02-18 10:07:26.742612-0800 folie[13634:1105541] [MC] 已加载 MobileCoreServices.framework
2018-02-18 10:07:30.068718-0800 folie[13634:1105541] [MC] 系统组 systemgroup.com.apple.configurationprofiles 路径的容器是 /Users/me/Library/Developer/CoreSimulator/Devices/7C6DF662-D026-419F-BDEC-96C130628095/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-02-18 10:07:30.070359-0800 folie[13634:1105541] [MC] 阅读自 私人有效用户设置。
2018-02-18 10:07:32.203212-0800 folie[13634:1105541] -[ViewController 注册:] - 107
2018-02-18 10:07:40.315781-0800 folie[13634:1106003] 收到的数据 从注册按钮: 你好TESTING...
C) 当我在我的物理 IOS 设备上运行我的测试应用程序时,我得到以下输出:
2018-02-18 09:50:26.555890-0800 folie[5058:1225079] [MC] Lazy loading NSBundle MobileCoreServices.framework 2018-02-18 09:50:26.558353-0800 folie[5058:1225079] [MC] Loaded MobileCoreServices.framework 2018-02-18 09:50:29.640089-0800 folie[5058:1225079] [MC] System group container for systemgroup.com.apple.configurationprofiles path是 /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-02-18 09:50:29.642837-0800 folie[5058:1225079] [MC] Reading from public effective user settings. 2018-02-18 09:50:37.833201-0800 folie[5058:1225079] -[ViewController SignUp:] - 107 2018-02-18 09:50:42.444278-0800 folie[5058:1225149] [BoringSSL] Function nw_protocol_boringssl_handshake_negotiate_proceed: line 387握手失败。断开会话
2018-02-18 09:50:42.446312-0800 folie[5058:1225149] TIC TCP Conn Failed [1:0x1c0165b80]: 3:-9800 Err(-9800) 2018-02-18 09:50:42.451062-0800 folie[5058:1225149] TIC TCP Conn Failed [2:0x1c4165100]: 3:-9800 Err(-9800) 2018-02-18 09:50:42.455194-0800 folie[5058:1225149] TIC TCP Conn Failed [3:0x1c4165340]: 3:-9800 Err(-9800) 2018-02-18 09:50:42.455519-0800 folie[5058:1225149] NSURLSession/NSURLConnection HTTP load failed(kCFStreamErrorDomainSSL, -9800)
2018-02-18 09:50:42.455650-0800 folie[5058:1225149] Task <B07F6A46-BE52-4439-A300-AF4C905AAD35>.<1> HTTP load failed (error代码:-1200 [3:-9800])
2018-02-18 09:50:42.456039-0800 folie[5058:1225223] Task <B07F6A46-BE52-4439-A300-AF4C905AAD35>.<1> finished with error - code:-1200
证书: iphone和模拟器都安装了相同的根证书
D) 我运行的最后一个测试是在绑定我的设备并关闭手机和 wifi 后,使用 chrome 和 safari 浏览器测试从我的物理设备访问 tomcat 服务器。 Safari没有显示页面,chrome显示如下错误:ERR_SSL_PROTOCOL_ERROR
【问题讨论】:
-
你试过用你电脑的IP地址代替本地主机吗?当然是你 iPhone 上的地址。
-
您只是想测试您的服务器端 Web 应用程序,还是专门尝试测试您正在修改系统信任库的用例?
-
你明白
localhost是什么意思吗?它是运行程序/应用程序的任何计算机/设备。在模拟器中,localhost 是您的 Mac。在真正的 iOS 设备上,localhost 是 iOS 设备。 -
我昨天尝试了IP地址,但似乎没有改变结果。我可以再试一次。
-
我正在尝试测试我的服务器端 Web 应用以及我的 ios 应用以进行远程开发(不依赖互联网上的 AWS 服务器)