使用TLS 1.2协议的clojure https连接
问题描述:
使用TLS 1.2尝试连接到https服务器(https://3dsecure.kkb.kz)。使用TLS 1.2协议的clojure https连接
(defn- http-request-clojure [xml req-type]
(let [url-info (url-map req-type)
(prepare-response (.toString (:body (client/get
(str (:url url-info) "?"
(and (:name url-info)
(str (:name url-info) "="))
(URLEncoder/encode xml))
{:insecure? true
:socket-timeout 10000
:conn-timeout 10000}))))))
出现错误 “javax.net.ssl.SSLException:收到致命警报:PROTOCOL_VERSION”
的OpenSSL 1.0.1g,Java 7中
任何想法什么不顺心?
答
这不是你,这是他们:他们的Qualys SSL Labs report:
Java 6u45 No SNI 2 Protocol or cipher suite mismatch Fail3
Java 7u25 Protocol or cipher suite mismatch Fail3
Java 8u31 TLS 1.2 TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa) No FS 112
至少从今天。他们可以随时解决这个问题,所以希望你有足够密切的关系来礼貌地鼓励他们遵循这个链接,并且可能更新openssl,以免他们不易受到协议降级攻击。
这几乎总是改变nginx或apache配置的一个简单问题,虽然它可能需要一些小工具来确保所有设备仍然可以连接。 SSL实验室是一个惊人的资源,用于说明这一点。
从你的角度来看,是使用Java 8的一个选项吗?这将是最简单的方式。
我已经通过设置自定义SSLConnectionSocketFactory成功地连接到java 7中的这个服务器与java的例子与Apache http lib(这是基地的clj-http)。但我无法找到在clj-http中如何做同样的事情。 – Amigo