iOS模拟器';此连接不是专用的';

iOS模拟器';此连接不是专用的';,ios,ssl,ios-simulator,Ios,Ssl,Ios Simulator,我一直在努力让iOS模拟器与我们的内部开发服务器配合良好 我通过将根CA拖到模拟器安装了它。默认情况下它是启用的,但我还是打开/关闭了它,只是为了确定 我通过safari连接,并在标题中找到了错误。通过应用程序连接(实际上是XCTest)并获得: 2020-03-30 11:45:53.001800+0300 xctest[20258:5222958][]nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_cont

我一直在努力让iOS模拟器与我们的内部开发服务器配合良好

我通过将根CA拖到模拟器安装了它。默认情况下它是启用的,但我还是打开/关闭了它,只是为了确定

我通过safari连接,并在标题中找到了错误。通过应用程序连接(实际上是XCTest)并获得:

2020-03-30 11:45:53.001800+0300 xctest[20258:5222958][]nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue:[-9812]
2020-03-30 11:45:53.001 XTest[20258:5222959]NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)
2020-03-30 11:45:53.004 xctest[20258:5222951]中的错误:可选(错误域=NSURLErrorDomain Code=-1202“此服务器的证书无效。您可能正在连接假装为“”的服务器,这可能会使您的机密信息面临风险。”UserInfo={NSURlerErrorFailingUrlPeerTrustErrorKey=,NSLocalizedRecoverySuggestion=是否仍要连接到服务器?,kCFStreamErrorDomainKey=3,kCFStreamErrorCodeKey=-9813,NSErrorPeerCertificateChainKey=-9813=(
""
),NSUnderlyingError=0x7fd541a157e0{Error Domain=KCFerrorDomain=KCF网络代码=-1202“(null)”用户信息={kCFStreamPropertySSLClientCertificateState=0,kCFStreamPropertySSLPeerTrust=,KCFnetworkCfsstreamsLerOriginalValue=-9813,KCFStreamerDomainKey=3,KCFStreamerCodeKey=-9813,kCFStreamPropertySSLPeerCertificates=(
""
)}},NSLocalizedDescription=此服务器的证书无效。您可能正在连接一个假装为“”的服务器,这可能会使您的机密信息处于危险之中。NSErrorFailingURLKey=https://,NSErrorFailingURLStringKey=,NSErrorClientCertificateStateKey=0})
我已经从Mac上的chrome连接,它工作正常。实际上,我将CA从Mac的钥匙链复制到了模拟器上

检查了以下清单:

  • 密钥大小=4096
  • 哈希算法是SHA-256 RSA
  • SAN中有一个DNS名称(但在CN中也有)。它说CN名称不受信任,但没有说不允许
  • EKU是有价值的
  • 有效期为两年
我还比较了Safari iOS和Chrome Mac中的证书。看起来不错。 最后,我在模拟器上安装了10.3,只是为了排除一些新的错误/限制

在Catalina/Xcode 11.4上运行

我非常感谢您在以下方面提供的帮助:

  • 实际的解决办法
  • 帮助诊断此问题。链接到更多最新要求或查看证书失败原因的工具

  • 没有。看起来没有什么不同。它说我需要TLS1.2,但我的chrome(v80)默认禁用了TLS1.1。
    2020-03-30 11:45:53.001800+0300 xctest[20258:5222958] [] nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue: [-9812]
    2020-03-30 11:45:53.001 xctest[20258:5222959] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
    2020-03-30 11:45:53.004 xctest[20258:5222951] Error in <file/line>: Optional(Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “<domain>” which could put your confidential information at risk." UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x7fd53fd12480>, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, NSErrorPeerCertificateChainKey=(
        "<cert(0x7fd546009200) s: <domain> i: <CA>>"
    ), NSUnderlyingError=0x7fd541a157e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1202 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x7fd53fd12480>, _kCFNetworkCFStreamSSLErrorOriginalValue=-9813, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, kCFStreamPropertySSLPeerCertificates=(
        "<cert(0x7fd546009200) s: <domain> i: <CA>>"
    )}}, NSLocalizedDescription=The certificate for this server is invalid. You might be connecting to a server that is pretending to be “<domain>” which could put your confidential information at risk., NSErrorFailingURLKey=https://<url>, NSErrorFailingURLStringKey=<url>, NSErrorClientCertificateStateKey=0})