【发布时间】:2018-10-01 03:30:33
【问题描述】:
我使用的是 Play Framework 2.3.8,但在向某些主机发出 HTTPS 请求时遇到问题。在这种情况下,我似乎无法使用WS client 连接到 Zendesk API 主机 (xxxxx.zendesk.com)。
我最初得到的错误是:
无法调用动作,最终报错:java.net.ConnectException: HostnameVerifier 异常。
这很奇怪,因为如果我在浏览器中或通过ssl s_client 查看证书,它看起来像是文件。 CN 条目与域匹配。
如果我 disable hostname verification,我会从 Cloudflare 收到一条错误消息,其中包含“禁止”消息。它是 HTML,而不是我所期望的 JSON。
然后我尝试使用Postman 和curl 发布相同的请求。请求成功,我得到了 JSON 格式的响应。
然后我使用Charles Web Debugging Proxy 拦截来自 Play Framework 的 HTTPS 请求,并将其与 Postman 发送的请求进行比较。奇怪的是,如果查尔斯拦截了请求,请求就会成功! Charles 没有说明证书问题。
我看到其他人抱怨 Cloudflare 的类似问题,在他们的案例中,结果证明他们的客户端不支持 TLS 1.2。我检查了一下,我正在运行 JVM 的 1.8 版,它默认支持 TLS 1.2,甚至尝试使用配置变量强制 TLS 1.2 以防万一,但没有帮助。
我认为我使用的 Play Framework 版本中的 SSL 存在一些问题。
【问题讨论】:
标签: playframework playframework-2.3 zendesk-api