Как мне сделать, чтобы org.springframework.web.reactive.function.client.WebClient использовал доверенное хранилище IBM по умолчанию, которое обычно находится в $ {WAS_INSTALL_ROOT} / profile / default / config / cell / myhostNode01Cell / node / myhostNode01 / trust .p12
По умолчанию он просматривает C: \ Program Files \ IBM \ WebSphere \ AppServer \ java \ 8.0 \ jre \ lib \ security \ cacerts
Наша команда поддержки не хотите использовать местоположение java для хранения сертификатов, поскольку каждый раз, когда они выполняют обновление java или обслуживание WAS, им приходится переустанавливать все. Теперь они не хотят устанавливать javax. net .ssl.trustStore ни в свойствах системы, поскольку путь WAS имеет значение Dynami c и может измениться в будущем. Более того, его необходимо установить на каждом узле производства. Вот как я строю WebClient для общения с остальным API
WebClient webClient = WebClient.builder().build();
, и ниже приведено исключение, которое я получаю, когда пытаюсь вызвать конечную точку REST с помощью веб-клиента. Как я уже говорил выше, если я импортирую сертификат в Java cacerts, он работает нормально.
Причина: java .security.cert.CertPathValidatorException: ошибка цепочки сертификатов в com.ibm.security.cert.CertPathUtil.findIssuer (CertPathUtil. java: 316) ~ [?: 8.0 build_20180821] в com.ibm.security.cert.BasicChecker. (BasicChecker. java: 108) ~ [?: 8.0 build_20180821] в com.ibm.security.cert.PKIXCertPathValidatorImpl.engineValidate (PKIXCertPathValidatorImpl. ~ 1020: * 220) ?: 8.0 build_20180821] по адресу com.ibm.security.cert.PKIXCertPathBuilderImpl.myValidator (PKIXCertPathBuilderImpl. java: 749) ~ [?: 8.0 build_20180821] по адресу com.ibm.security.cert.PBIberBerCert *: 661) ~ [?: 8.0 build_20180821] в com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath (PKIXCertPathBuilderImpl. java: 607) ~ [?: 8.0 build_20180821] в com.ibm.Philcer engineBuild (PKIXCertPathBuilderImpl. java: 368) ~ [?: 8.0 build_20180821] в java .security.cert.CertPathBuilder.build (CertPathBuilder. java: 268) ~ [?:?] в com.ibm.jse , util.fa (ф. java: 54) ~ [?: 8.0 build_20181010] на com.ibm.jsse2.util.fb (ф. java: 89) ~ [?: 8.0 build_20181010] на com.ibm. jsse2.util.ea (e. java: 17) ~ [?: 8.0 build_20181010] на com.ibm.jsse2.aD.a (aD. java: 90) ~ [?: 8.0 build_20181010] на ком. ibm.jsse2.aD.a (aD. java: 107) ~ [?: 8.0 build_20181010] на com.ibm.jsse2.aD.checkServerTrusted (aD. java: 102) ~ [?: 8.0 build_20181010] в com.ibm.jsse2.Ea (E. java: 322) ~ [?: 8.0 build_20181010] на com.ibm.jsse2.Ea (E. java: 401) ~ [?: 8.0 build_20181010] на ком. ibm.jsse2.Dr (D. java: 444) ~ [?: 8.0 build_20181010] на com.ibm.jsse2.D $ ba (D $ b. java: 2) ~ [?: 8.0 build_20181010] в com.ibm.jsse2.D $ b.run (D $ b. java: 3) ~ [?: 8.0 build_20181010] в java .security.AccessController.doPrivileged (AccessController. java: 739) ~ [ ?: 1.8.0] на com.ibm.jsse2.D $ c .run (D $ c. java: 12) ~ [?: 8.0 build_20181010] на io.netty.handler.ssl.SslHandler .runAllDelegatedTasks (SslHandler. java: 1494) ~ [netty-handler-4.1.45.Final.jar: 4.1.45.Final] в io.netty.handler.ssl.SslHandler.runDelegat edTasks (SslHandler. java: 1508) ~ [netty-handler-4.1.45.Final.jar: 4.1.45.Final] на io.netty.handler.ssl.SslHandler.unwrap (SslHandler. java: 1392 ) ~ [netty-handler-4.1.45.Final.jar: 4.1.45.Final] на io.netty.handler.ssl.SslHandler.decodeJdkCompatible (SslHandler. java: 1219) ~ [netty-handler-4.1. 45.Final.jar: 4.1.45.Final] на io.netty.handler.ssl.SslHandler.decode (SslHandler. java: 1266) ~ [netty-handler-4.1.45.Final.jar: 4.1.45 .Final] at io.netty.handler.code c .ByteToMessageDecoder.decodeRemovalReentryProtection (ByteToMessageDecoder. java: 498) ~ [netty-код c -4.1.45.Final.jar: 4.1.45.Final] at io.netty.handler.code c .ByteToMessageDecoder.callDecode (ByteToMessageDecoder. java: 437) ~ [netty-code c -4.1.45.Final.jar: 4.1.45.Final]