gpt4 book ai didi

ios - 无法使用 HTTPS 连接到服务器

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:30:46 25 4
gpt4 key购买 nike

首先,我知道有ton 类似的问题,但我所看到的似乎都没有解决我的设置问题(我找到的任何解决方案都没有用) ).所以请耐心等待...

  • 我的服务器主机名是 IP 地址,而不是域名(即 URL 看起来像:https://XXX.YYY.ZZZ.WWW:9443/etc...)。
  • 我的服务器有一个真实的证书(即不是自签名的)。
  • 我的应用程序的 plist 条目 NSAppTransportSecurity 字典是空的(没有任何异常 - 出厂设置 ATS)。
  • 这是生产代码,我不能禁用 ATS(我认为我也不能,因为异常(exception)情况只适用于显式域名, IP 地址)。

(在 iOS 9 上测试,部署目标是 iOS 8.x)

我在尝试连接时遇到此错误:

CFNetwork SSLHandshake failed (-9806) NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9806) Error: An SSL error has occurred and a secure connection to the server cannot be made.

(设备模拟器)

我尝试用命令行工具nscurl描述here .我得到:

  • 默认 ATS 安全连接:CFNetwork SSLHandshake 失败(-9806)
  • 允许任意加载:NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)(“此服务器的证书无效。您可能正在连接到伪装成“XXX.YYY.ZZZ.WWW”的服务器,这可能会使您的 secret 信息处于危险之中。”)
  • 为 XXX.YYY.ZZZ.WWW 配置 TLS 异常(exception):(TLS 1.2、1.1 和 1.0)CFNetwork SSLHandshake 失败(-9806)

  • 禁用完美前向保密:CFNetwork SSLHandshake 失败(-9801)

  • 禁用完美前向保密并允许不安全的 HTTP:CFNetwork SSLHandshake 失败(-9801)

  • 禁用 PFS 的 TLSv1.2:CFNetwork SSLHandshake 失败(-9801)

  • 禁用 PFS 的 TLSv1.1:CFNetwork SSLHandshake 失败 (-9801)

  • 禁用 PFS 的 TLSv1.0NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9802)

  • 禁用 PFS 并允许不安全 HTTP 的 TLSv1.2:CFNetwork SSLHandshake 失败 (-9801)

...你明白了。

我已经检查了服务器支持哪个 TLS 版本(据我研究,这是最大的嫌疑),但也许我还需要修复/检查客户端?

最佳答案

我认为您需要检查服务器上的证书。您应该能够使用 openssl 客户端来调查您的证书并获取服务器的 ssl 配置:

openssl s_client  -connect XXX.YYY.ZZZ.WWW:9443 

您应该获得有关证书的一些详细信息

SSL session : 协议(protocol):TLSv1 密码:AES256-SHA session ID:// session ID-ctx: 主 key :// 关键参数:无 开始时间:1449693038 超时:300(秒) 验证返回码:0(ok)

或者,您可以使用类似 symantec 的网站查询证书并查看您是否满足 TLS1.2、足够强的 key 和前向保密性的要求。

此外,您可以尝试打开 CFNetwork 诊断日志记录。编辑 Xcode 方案并添加 CFNETWORK_DIAGNOSTICS 环境变量。将日志记录级别设置为最详细的 3:

Xcode 控制台显示日志文件的位置:

CFNetwork diagnostics log file created at: /private/var/mobile/Containers/
Data/Application/A3421F00-451A-CD70-1B82-B163D1A3BB0F/Library/Logs/
CrashReporter/CFNetwork_com.sample.app_118.nwlrb.log

您可以查看这些日志,看看是否有关于网络调用失败原因的更多信息。

关于ios - 无法使用 HTTPS 连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37852829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com