Clojure HTTPS подключиться по протоколу TLS 1.2
Попытка подключения к серверу https ( https://3dsecure.kkb.kz/) с использованием TLS 1.2.
(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.
Есть идеи, что пойдет не так?
1 ответ
Это не вы, а они: из отчета Qualys SSL Labs:
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 labs - удивительный ресурс для выяснения этого.
С вашей точки зрения, использование Java 8 вариант? Это будет самый простой способ преодолеть это.