使用 mqtt 连接emq时,采用ssl:**** 协议认证连接时出现以下异常
MqttException (0) - javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching XXX.XX.cn found
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:736)
at java.lang.Thread.run(Thread.java:745)
说明使用SSL连接配置中的TrustManager里的server验证失败,即服务端证书签名时用的host和现在签名的host不是同一个;
错误原因 mqttv3 版本问题,开始使用的1.2.2版本,死活报异常,然而降低了下版本可以了,使用了以下版本:
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.0</version>
</dependency>