#java #spring-boot #ssl #ssl-certificate #hashicorp-vault
#java #весенняя загрузка #ssl #ssl-сертификат #hashicorp-хранилище
Вопрос:
Я пытаюсь подключиться к серверу Vault из моего приложения Spring Boot. Итак, я прошел через это руководство: https://www.baeldung.com/spring-vault и получение исключения SSLHandshakeException:
WARN o.s.v.a.LifecycleAwareSessionManager - Cannot enhance VaultToken to a LoginToken: Token self-
lookup failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error
on GET request for
"https://*my vault server*/auth/token/lookup-
self": sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path
to requested target; nested exception is 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
16:49:40.487 [http-nio-8084-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for
servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed;
nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request
for "https://*my vault server*/":
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path
to requested target; nested exception is 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] with root cause
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path
to requested target
Итак, я поместил файл keystore.jks в папку resources и вставил следующие конфигурации в application.yml:
spring.cloud.vault:
ssl:
trust-store: classpath:keystore.jks
trust-store-password: changeit
И все еще выдает ошибку. Что я делаю не так?
Есть ли какие-либо способы установить для проверки ssl значение false, как я сделал в Postman?
Комментарии:
1. Вам необходимо импортировать сертификат сервера keyvault в java
cacerts
, используяkeytool
команду для импорта.2. @PandeyAmit Вы имеете в виду этот корневой файл — import -trustcacerts -alias my-root.cer -keystore keystore.jks? Уже сделал.
3. Лучше импортировать
JAVA_HOMElibsecuritycacerts
или использовать этот способjava -jar -Djavax.net.ssl.trustStore=/path/to/keystore.jks -Djavax.net.ssl.trustStorePassword=password your-app.jar
4. @PandeyAmit Да! Это сработало. Большое вам спасибо!
5. Кто-нибудь знает, как отключить ssl в vault?