gpt4 book ai didi

java - 出站连接上的客户端证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:32 25 4
gpt4 key购买 nike

在我的应用程序中,我需要使用客户端身份验证访问一堆 REST 网络服务。我正在使用 RestEasy 的 JAX-RS 客户端实现(它实际上在后台使用 Apache HttpComponents)。

首先,我尝试加载 KeyStore:

private static KeyStore keyStore;

static {
try {
String keyStoreProperty = System.getProperty("javax.net.ssl.keyStore");
String keyStorePasswordProperty = System.getProperty("javax.net.ssl.keyStorePassword");

if (keyStoreProperty != null && keyStorePasswordProperty != null) {
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
try (InputStream keyStoreData = new FileInputStream(keyStoreProperty)) {
keyStore.load(keyStoreData, keyStorePasswordProperty.toCharArray());
}
}
} catch (IOException | NoSuchAlgorithmException | CertificateException | KeyStoreException e) {
//logging
}
}

接下来,我使用之前加载的 KeyStore 构建 javax.ws.rs.client.Client:

Client client;
if (keyStore != null) {
client = ClientBuilder.newBuilder()
.keyStore(keyStore, System.getProperty("javax.net.ssl.keyStorePassword")).build();
} else {
//logging
}

但是,这段代码似乎并不是做事的正确方法。

我想知道是否可以在 JBoss/WildFly 上配置 keyStore 并将其应用于出站连接,最好是基于 URL 模式。

最佳答案

WildFly 没有。

关于配置 2-way SSL 时的代码,您还需要配置 trustStore。使客户端信任您正在连接的服务器。或者使用 ssl 上下文代替 keyStore trustStore 对 [1]。

[1] https://docs.oracle.com/javaee/7/api/javax/ws/rs/client/ClientBuilder.html

关于java - 出站连接上的客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49673436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com