я получаю следующее исключение:Игнорировать сертификат SSL в Servlet
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Я сделал некоторые исследования и изменил мое подключение код это:
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
public boolean isTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
return true;
}
}).build();
CloseableHttpClient client = HttpClients.custom()
.setRedirectStrategy(new LaxRedirectStrategy())
.setSslcontext(sslContext)
.setConnectionManager(connMgr)
.build();
Эта проблема решена, до сих пор, я больше не получают исключения, и соединение работает.
Проблема возникает снова, когда я использую тот же код в сервлете, запущенном в Tomcat.
Почему?
Я предполагаю, что это должно было устранить исключение CertificateException, которое появилось, когда я добавил хранилище ключей и импортировал .crt. Оказывается, я не могу использовать это обходное решение, я бы предпочел избежать первоначального исключения SunCertPathBuilderException. – Tim
Тем не менее, я попробовал ваше решение, и теперь получаю эту ошибку: 'java.security.KeyStoreException: проблема с доступом к trust storejava.security.cert.CertificateParsingException: подписанное переполнение, байты = 266 на com.sun.net.ssl.internal. ssl.TrustManagerFactoryImpl.engineInit (TrustManagerFactoryImpl.java:55) ' – Tim
Ваш ответ заставил меня проверить все это, и у меня была ошибка в моем коде. Поскольку вы единственный, кто ответил, справедливо, что вы получаете награду :) Спасибо – Tim