Использование SSL-сертификата с притворствомJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Использование SSL-сертификата с притворством

Сообщение Anonymous »

Я пытаюсь получить доступ к приложению, защищенному https, у меня есть сертификат p12 (уже импортированный как .cer в папку cacerts моего jdk).
Я уже пробовал это руководство безуспешно:
https://dzone.com/articles/ssl-based-fe ... crocervice
А также я использую часть это решение:
Как использовать сертификат клиента p12 с клиентом Spring Feign
При отладке SSL-соединения я получаю следующую ошибку:

Код: Выделить всё

javax.net.ssl|ERROR|25|http-nio-auto-1-exec-1|2021-01-26 16:56:34.789 BRT|TransportContext.java:317|Fatal (HANDSHAKE_FAILURE): Received fatal alert: handshake_failure
Мой текущий класс конфигурации симуляции

Код: Выделить всё

    @Bean
@ConditionalOnMissingBean
public Feign.Builder feignBuilder(Retryer retryer) {
return Feign.builder().retryer(retryer);
}

@Bean
public Feign.Builder feignBuilder() {
return Feign.builder()
.retryer(Retryer.NEVER_RETRY)
.client(new Client.Default(getSSLSocketFactory(), null));
}

private SSLSocketFactory getSSLSocketFactory() {
String keyStorePassword = "myPassword";
char[] allPassword = keyStorePassword.toCharArray();
SSLContext sslContext = null;
try {
sslContext = SSLContextBuilder
.create()
.setKeyStoreType("PKCS12")
.loadKeyMaterial(ResourceUtils.getFile("keypath"), allPassword, allPassword)
.build();
} catch (Exception e) {  }
return sslContext.getSocketFactory();
}
В разделе отладки кода я вижу, что мой сертификат находится там, но моя Java все равно получает ошибку рукопожатия. Я новичок в концепции SSL и, возможно, неправильно настроил какую-то конфигурацию.
Последнее замечание: когда вы находитесь в классе конфигурации feign и устанавливаете хранилище доверенных сертификатов и пароль системой

Код: Выделить всё

         System.setProperty("javax.net.ssl.trustStorePassword", "pass");
System.setProperty("javax.net.ssl.trustStore", "pathtocerth.p12");
Ошибка изменится на следующее:

Код: Выделить всё

javax.net.ssl|ERROR|25|http-nio-auto-1-exec-1|2021-01-26 16:48:58.551 BRT|TransportContext.java:317|Fatal (CERTIFICATE_UNKNOWN): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target


Подробнее здесь: https://stackoverflow.com/questions/659 ... with-feign
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»