gpt4 book ai didi

java - 如何使用 CA 签名的服务器证书连接 SSL MQTT 客户端?

转载 作者:行者123 更新时间:2023-12-02 10:32:34 29 4
gpt4 key购买 nike

我需要注册 MQTT 地址,但出现异常。据我所知,我不需要上传任何证书,只需使用服务器的即可。我该怎么办?

代码:

public void connect() throws MqttException{
MqttConnectOptions options = new MqttConnectOptions();
options.setUserName("username");
options.setPassword("123456".toCharArray());
options.setAutomaticReconnect(true);

client = new MqttClient("ssl://myadress:1883", MqttClient.generateClientId());
client.setCallback(callback);
System.out.println(topic);
try {
client.connect(options);
client.subscribe(topic);
} catch (Exception e){
e.printStackTrace();
}
}

异常(exception):

MqttException (0) - javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我正在使用 Eclipse Paho 库,但我在该库的文档中没有找到(或者,即使找到了,我也没有理解)任何非常有启发性的内容。

最佳答案

您需要提供自己的SSLSocketFactory,它有自己的TrustManager,知道信任您的证书。

您将 SSLSocketFactory 添加到传递给 MqttClient.connect() 调用的 MqttClientOptions 对象。

网上有很多关于使用您自己的 CA 证书设置 SSLSocketFactory 的示例。

关于java - 如何使用 CA 签名的服务器证书连接 SSL MQTT 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523164/

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