Когда я импортирую этот материал сертификата в Postman, я могу успешно отправлять запросы. Это означает: сертификаты действительны.
Тем не менее, мне пока не удалось заставить его работать в SpringBoot. Я хотел бы воспользоваться преимуществами SslBundles, представленными в SpringBoot 3.1.
Я определил пакет как с хранилищем ключей, так и с хранилищем доверенных сертификатов:
Код: Выделить всё
spring:
ssl:
bundle:
jks:
mySslBundle:
keystore:
location: "classpath:path/to/clientCert.p12"
password: "PW"
type: "PKCS12"
truststore:
location: "classpath:path/to/serverCA.p12"
password: "PW"
type: "PKCS12"
Код: Выделить всё
@Configuration
public class RestTemplateConfig {
@Bean(name = "fooRestTemplate")
public RestTemplate createFooRestTemplate(RestTemplateBuilder restTemplateBuilder,
SslBundles sslBundles) {
return restTemplateBuilder
.setSslBundle(sslBundles.getBundle("mySslBundle"))
.build();
}
}
Код: Выделить всё
Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
В моем приложении SpringBoot я преобразовал файл .pem в .p12 с помощью openssl. Я сделал это для того, чтобы сертификат клиента и сертификат сервера представляли собой файл p12 и могли быть импортированы в один и тот же sslBunde. Правильный ли это подход к импорту хранилища ключей и доверенного источника в одном пакете?
Любая подсказка приветствуется.
Подробнее здесь: https://stackoverflow.com/questions/775 ... sttemplate
Мобильная версия