Реактивный веб-клиент Spring для использования хранилища доверенных сертификатов IBM WAS по умолчанию вместо хранилища по умолчанию, расположенного в jre\lib\security\cacerts

Как я могу заставить org.springframework.web.reactive.function.client.WebClient использовать хранилище доверенных сертификатов IBM по умолчанию, которое обычно находится в ${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12

По умолчанию он смотрит на C:\Program Files\IBM\WebSphere\AppServer\java\8.0\jre\lib\security\cacerts

Наша команда разработчиков инфраструктуры не хочет использовать расположение Java для хранения сертификатов, поскольку каждый раз, когда они выполняют обновление Java или обслуживание WAS, им приходится все переустанавливать. Теперь они не хотят устанавливать javax.net.ssl.trustStore ни в свойствах системы, так как путь к WAS является динамическим и может измениться в будущем. Более того, его необходимо установить на каждом узле в производстве. Вот как я создаю 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.ckert.BasicCheck.(BasicChecker.java:108) ~[?:8.0 build_20180821] в com.ibm.security.cert.PKIXCertPathValidatorImpl.engineValidate(PKIXCertPathValidatorImpl.java:220) ~[?:8.0 build_20180821] в com.ibm.PKIXCertPathBuilderImpl.myValidator(PKIXCertPathBuilderImpl.java:749) ~[?:8.0 build_20180821] в com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.buildCertPath (PKIXCertPathBuilderImpl.buildCertPath) (PKIXCertPath_BuilderImpl.buildCertPath) (PKIXCertPath_builderImpl.buildCertPath) ~ 8.0: 8.0.build_security. cert.PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.java:607) ~[?:8.0 build_20180821] в com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild (PKIXCertPathBuilderImpl.java:368) ~ [?: 8.0 build_20180821] в java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268) ~ [?:?] в com.ibm.jsse2.util.fa(f.java: 54) ~[?:8.0 build_20181010] в com.ibm.jsse2.util.fb (f.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] в com.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] в com.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.runDelegatedTasks(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] в io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:498) ~[netty-codec-4.1.45.Final.jar:4.1.45.Final] в io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessagejavaDecoder.callDecode (netty-codec-4.1.45.Final.jar) ~ -codec-4.1.45.Final.jar: 4.1.45.Final]

0 ответов

Другие вопросы по тегам