【发布时间】:2018-08-21 22:54:36
【问题描述】:
一段时间以来,我们通过 HTTPS 与我们的服务器通信正常。
上周供应商改变了一些东西,从现在开始我总是得到 403 错误。
我使用最新的 OpenSSL DLLs V0.9.8
我已将 UserAgent 更改为“Mozilla/5.0 (Windows NT 10.0)”
SSL 方法是“sslvSSLv23”
SSL 模式为“sslmClient”
没有任何帮助。 :(
这是我得到的日志:
SSL 状态:“正在解析主机名 msselektronik.at。” SSL 状态:“正在连接到 85.158.181.20。” SSL StatusInfoEx: Type="Handshake Start", Msg="before/connect initialization" SSL StatusInfoEx:Type="连接循环",Msg="之前/连接初始化" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv2/v3 write client hello A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 read server hello A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 read server certificate A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 读取服务器密钥交换 A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 read server done A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 write client key exchange A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 write change cipher spec A" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 write finished A" SSL StatusInfoEx:Type="连接循环",Msg="SSLv3 刷新数据" SSL StatusInfoEx: Type="Connect Loop", Msg="SSLv3 read finished A" SSL StatusInfoEx: Type="Handshake Done", Msg="SSL 协商成功完成" SSL StatusInfoEx: Type="Connect Exit", Msg="SSL 协商成功完成" SSL StatusInfoEx: Type="warning Read Alert", Msg="close notify" SSL 状态:“已断开连接。” 响应文本:HTTP/1.1 403 禁止在 Wireshark 日志中,我在“客户端密钥交换”之后看到从服务器到客户端的“加密警报”。
编号 时间 源 目的地 协议 长度 信息 4 1.563661 192.168.0.30 85.158.181.20 SSLv2 181 客户端你好 6 1.590865 85.158.181.20 192.168.0.30 TLSv1 1514 服务器你好 10 1.605380 85.158.181.20 192.168.0.30 TLSv1 1348 证书,服务器密钥交换,服务器你好完成 12 1.638612 192.168.0.30 85.158.181.20 TLSv1 380 客户端密钥交换、更改密码规范、加密握手消息 13 1.676523 85.158.181.20 192.168.0.30 TLSv1 113 更改密码规范,加密握手消息 14 1.679066 192.168.0.30 85.158.181.20 TLSv1 320 应用数据,应用数据 15 1.711226 85.158.181.20 192.168.0.30 TLSv1 587 应用数据 16 1.711227 85.158.181.20 192.168.0.30 TLSv1 91 加密警报 19 1.713426 192.168.0.30 85.158.181.20 TLSv1 91 加密警报我该怎么做才能让通信重新开始?
【问题讨论】:
-
这个问题与SSL无关。您甚至收到 HTTP 错误这一事实意味着 SSL 工作正常,这在您显示的日志跟踪中得到了证明。 SSL 握手成功,然后来回交换 HTTP 数据。因此,与 SSL 无关的 HTTP 请求存在其他问题。您需要与 Provider 讨论他们所做的更改,并让他们帮助您解决 HTTP 请求的问题。
-
顺便说一句,0.9.8 甚至还远没有成为 OpenSSL 的最新版本。 Indy 10 支持的最新版本的 OpenSSL 是 1.0.2n。您需要更新您的 OpenSSL DLL,可能还需要更新您的 Indy 安装以支持它们。
标签: delphi ssl https indy10 idhttp