当前位置: 首页 > 知识库问答 >
问题:

无法使用HTTPS连接到服务器

姜松
2023-03-14

首先,我知道有很多类似的问题,但我所看到的似乎都不能解决我的设置(我发现的任何解决方案都不管用)。所以请容忍我。。。

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

(iOS9测试,部署目标iOS8. x)

我在尝试连接时出现以下错误:

CFNetwork SSLHandshake失败(-9806)NSURLSession/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9806)错误:发生SSL错误,无法与服务器建立安全连接。

(设备和模拟器)

我尝试命令行工具nscurl描述在这里。我得到:

>

  • 默认ATS安全连接:CFNetwork SSL握手失败(-9806)
  • 允许任意加载:NSURL会话/NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)("此服务器的证书无效。您可能正在连接一个假装是"XXX. YYY. ZZZ. WWW"的服务器,这可能会将您的机密信息置于危险之中。")
  • 配置XXX. YYY. ZZZ. WWW的TLS异常:(TLS 1.2,1.1和1.0)CFNetwork SSLHandshake失败(-9806)

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

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

    TLSv1。2禁用PFS时:CFNetwork SSLHandshake失败(-9801)

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

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

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

    ...你来操练。

    我已经检查了服务器支持的TLS版本(就我所研究的而言,这是最大的怀疑),但也许还有别的东西我需要在客户端修复/检查?

  • 共有1个答案

    钱毅
    2023-03-14

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

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

    你应该了解证书的一些细节

    SSL会话:协议:TLSv1密码:AES256-SHA会话ID://会话ID ctx:Master Key://Key Arg:None启动时间:1449693038超时:300(秒)验证返回代码:0(确定)

    或者,你可以使用赛门铁克这样的网站查询证书,看看你是否满足TLS1的要求。2、足够强大的密钥,并具有前向保密性。

    此外,您可以尝试打开网络诊断日志记录。编辑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
    

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

     类似资料:
    • 这是mysql连接php脚本。它不断地显示出它的错误 警告:mysqli_connect():(HY000/1045):用户'user'@'localhost'(使用密码:YES)在第6行的C:\xampp\htdocs\index.php访问被拒绝 注意:尝试在第7行连接成功的C:\xampp\htdocs\index.php中获取非对象的属性 我听不懂,请帮帮我好吗?

    • 问题内容: 我正在尝试使用smack 4.1.0运行此代码 这给我一个错误: 并且,在本地openfire服务器中启用调试后,我收到以下消息: 我要去哪里错了? 问题答案: 根据与用户问题的讨论,AS位于XMPPTCPConnectionConfiguration中。默认情况下,Openfire中的端口5223是客户端SSL端口, 服务器>>服务器设置>>客户端连接 错误 org.jivesoft

    • null ...9200/_cluster/nodes ...9200/_cluster/health?pretty=true Java代码: Java版本: 问题已按以下方式解决。确保您的客户端和服务器版本是同步的!

    • 我在设置打开班次时遇到问题,并在连接到我的服务器域后收到以下错误: 我不确定这是在告诉我做什么。我尝试按字面意思使用指令,但它无法识别命令。 有什么想法吗?

    • 问题内容: 我不确定如何解决此问题 我不知道为什么在尝试以下操作时会出现此错误: 当我尝试连接到postgres时: 问题答案: 可能是一些问题: PostgreSQL没有运行。用sudo检查 你的PostgresSQl不在端口5432上运行。你可以检查其键入 尝试连接到数据库时出现错误,例如用户名,密码或数据库名。检查它们是否是postgres要求你连接的对象,并且这是你要访问的db_name。

    • 在我做了和之后,我的postgres遇到了一些问题。我试着卸载postgres并重新安装它,但它并没有那么好用。 这就是我所做的: 现在,在我重新安装homebrew之后,当我使用时,它不显示任何错误消息。 但是我在我的Rails应用程序中运行,它显示: 更新 这对我也管用。