Сбой чтения секретного AppIdAuthentication Spring vault с SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели
Мы хотели бы прочитать секрет из нашего хранилища с использованием пружинного хранилища AppIdAuthentication
Конфигурация следующая
@Configuration
public class VaultConfig extends AbstractVaultConfiguration {
@Override
public ClientAuthentication clientAuthentication() {
AppIdAuthenticationOptions options = AppIdAuthenticationOptions.builder()
.appId("appId")
.userIdMechanism(new StaticUserId("userId"))
.build();
return new AppIdAuthentication(options, restOperations());
}
@Override
public VaultEndpoint vaultEndpoint() {
return VaultEndpoint.from(URI.create("https://vault.company.com"));
}
}
В то время как часть чтения
VaultResponseSupport<SomeClass> response = vaultTemplate.read("path/to/secret", SomeClass.class);
Однако получено следующее исключение
Exception in thread "main" org.springframework.vault.authentication.VaultLoginException: Cannot login using
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://vault.company.com:443/v1/auth/app-id/login":
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
Секрет существует в хранилище и может быть получен из командной строки с помощью vault read
после экспорта VAULT_ADDR
а также VAULT_TOKEN
(генерируется с помощью auth/app-id/login, используя вышеуказанные значения appId и userId)