Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
The check can be turned off using -Dtls_prohibit_disabled_validation=false
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.09.2018(UTC) Сообщений: 3
Сказал(а) «Спасибо»: 1 раз
|
apache httpclient обращается по GostTLS к серверу и падает с вот таким стеком: Код:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Host and certificate validation are disabled but required. The check can be turned off using -Dtls_prohibit_disabled_validation=false or SetPrefs (see the programmer's guide) or TLSSettings.
at ru.CryptoPro.ssl.cl_2.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_58.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_58.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_15.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_15.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_58.w(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_58.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.SSLSocketImpl.n(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.SSLSocketImpl.b(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[cpSSL.jar:40502]
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.10.jar:4.5.10]
at org.apache.http.client.fluent.Request.internalExecute(Request.java:173) ~[fluent-hc-4.5.10.jar:4.5.10]
at org.apache.http.client.fluent.Executor.execute(Executor.java:262) ~[fluent-hc-4.5.10.jar:4.5.10]
..........
Caused by: java.security.cert.CertificateException: Host and certificate validation are disabled but required. The check can be turned off using -Dtls_prohibit_disabled_validation=false or SetPrefs (see the programmer's guide) or TLSSettings.
at ru.CryptoPro.ssl.cl_121.a(Unknown Source) ~[cpSSL.jar:40502]
at ru.CryptoPro.ssl.cl_121.checkServerTrusted(Unknown Source) ~[cpSSL.jar:40502]
... 33 common frames omitted
Код: Код: trustKeyStore = loadKeyStore("JKS", trustStore, trustStorePassword);
trustManagerFactory = TrustManagerFactory.getInstance("GostX509");
trustManagerFactory.init(trustKeyStore);
sslContext = SSLContext.getInstance("GostTLS");
sslContext.init(null, trustManagerFactory.getTrustManagers(), null);
sslSocketFactory = new SSLConnectionSocketFactory(sslContext);
Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", sslSocketFactory)
.build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
httpClient = HttpClients.custom()
.setSSLContext(sslContext)
.setConnectionManager(connectionManager)
.setKeepAliveStrategy(DefaultConnectionKeepAliveStrategy.INSTANCE)
.build();
Request post = Request.Post(url)
.bodyByteArray(requestBody, ContentType.create("application/xml"));
Content responseContent = Executor.newInstance(httpClient)
.execute(post)
.returnContent();
Host and certificate validation are disabled but required - где можно разрешить валидацию, чтобы не отключать tls_prohibit_disabled_validation? Насколько плохо будет выставить tls_prohibit_disabled_validation=false? Отредактировано пользователем 29 января 2020 г. 20:05:20(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,098  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 751 раз в 708 постах
|
Добрый день. В некоторых случаях условие для проверки на соответствие имени хоста/ip и сертификата не выполняется (например, когда она намеренно выключена), поэтому задайте -Dtls_prohibit_disabled_validation=false |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.09.2018(UTC) Сообщений: 3
Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте, Цитата:например, когда она намеренно выключена Эта проверка могла быть выключена где-то в настройках КриптоПро JCP?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,098  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 751 раз в 708 постах
|
Нужно обновиться до последней сборки 40714 (хотя это сборка java-csp, в ее составе есть jcp и cpssl, можно ставить только их). Попробуйте так под управлением администратора: Код:
<JRE>/bin/java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl -key tls_prohibit_disabled_validation -value false
где JRE - java с установленным jcp. Отредактировано пользователем 30 января 2020 г. 10:09:47(UTC)
| Причина: Не указана |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
The check can be turned off using -Dtls_prohibit_disabled_validation=false
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close