gpt4 book ai didi

java - 信任 java Websocket 客户端中的所有证书

转载 作者:搜寻专家 更新时间:2023-11-01 02:44:39 26 4
gpt4 key购买 nike

首先,我知道信任所有证书可能存在的风险,但是出于某些测试目的,我必须实现这一点。

如何强制我的客户信任所有证书?我正在使用 javax.websocket

来实现

我所做的只是像连接到 ws 一样

WebSocketContainer client = ContainerProvider.getWebSocketContainer();

try {
session = client.connectToServer(ClientImpl.class, URI.create(uri));
} catch (DeploymentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

最佳答案

我遇到了同样的问题。我还没有找到任何解决方案,但我能够使用自签名证书。

我描述了所有的步骤:

  1. 下载你想要连接的服务器证书,你可以从你的浏览器中完成(在谷歌浏览器中点击页面 url 附近的锁)
  2. 使用以下命令创建 keystore (记住您输入的密码)

keytool -import -alias localhost -file certificate_path -keystore your_new_keystore

我建议您使用 ClientManager 而不是 WebSocketContainer。这允许您覆盖主机名验证。

我的代码

System.getProperties().put("javax.net.debug", "all"); //usefull to understand problems

System.getProperties().put(SSLContextConfigurator.KEY_STORE_FILE, your_new_keystore_path);

System.getProperties().put(SSLContextConfigurator.TRUST_STORE_FILE, your_new_keystore_path);

System.getProperties().put(SSLContextConfigurator.KEY_STORE_PASSWORD, the_password_you_entered);

System.getProperties().put(SSLContextConfigurator.TRUST_STORE_PASSWORD, the_password_you_enterede);

ClientManager client = ClientManager.createClient();

SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());

sslEngineConfigurator.setHostVerificationEnabled(false); //skip host verification

client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);

client.connectToServer(you_class_with_ws_methods, your_ws_uri);

you_class_with_ws_methods 可以与您使用的 WebSocketContainer 相同有用的资源:

https://tyrus.java.net/documentation/1.10/user-guide.html#d0e1128 https://blogs.oracle.com/PavelBucek/entry/securing_websocket_applications_on_glassfish

关于java - 信任 java Websocket 客户端中的所有证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25543627/

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