Java MQTT android服务器连接问题,以使用.bks文件插入导入ssl证书
Mqtt android客户端代码 此代码在没有ssl证书连接的情况下运行良好Java MQTT android服务器连接问题,以使用.bks文件插入导入ssl证书,java,android,ssl,mqtt,Java,Android,Ssl,Mqtt,Mqtt android客户端代码 此代码在没有ssl证书连接的情况下运行良好 public void connectToMqttServerTest() { String clientId = MqttClient.generateClientId(); final MqttAndroidClient mqttAndroidClient = new MqttAndroidClient(this.getApplicationContext(), "ssl://10.0.0.50:
public void connectToMqttServerTest() {
String clientId = MqttClient.generateClientId();
final MqttAndroidClient mqttAndroidClient = new MqttAndroidClient(this.getApplicationContext(), "ssl://10.0.0.50:8883", "AndroidMQTTServer", persistence);
MqttConnectOptions connectionOptions = new MqttConnectOptions();
connectionOptions.setCleanSession(true);
try {
InputStream srvIn = getResources().openRawResource(R.raw.key_store);
connectionOptions.setSocketFactory(mqttAndroidClient.getSSLSocketFactory(srvIn, "1234"));
} catch (MqttSecurityException e) {
e.printStackTrace();
}
mqttAndroidClient.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println("mqtt Connection was lost!");
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
Log.e("message", message.toString());
System.out.println("mqtt Message Arrived!: " + topic + ": " + new String(message.getPayload()));
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("mqtt Delivery Complete!");
}
});
try {
mqttAndroidClient.connect(connectionOptions, null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
System.out.println("mqtt Connection Success!");
try {
mqttAndroidClient.subscribe("res_shdap_11_findDevices", 1);
mqttAndroidClient.publish("req_shdap_11_findDevices", new MqttMessage("{\"message\" : \"\"}".getBytes()));
} catch (MqttException ex) {
}
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
System.out.println("mqtt Connection Failure!");
System.out.println("mqtt throwable: " + exception.toString());
}
});
} catch (MqttException ex) {
System.out.println("mqtt exception " + ex.toString());
}
}
错误:
MqttException(0)-javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚点
欢迎来到Stackoverflow。仅仅发布一些代码说“这不起作用”被认为是离题的,请阅读文档,询问一些好问题:嘿,你知道什么时候会出现SSL握手异常吗?错误意味着代理使用的证书在你的密钥库中没有CA证书