Я работаю над авторизацией SSL-сертификата и аутентификацией. Конфигурация Vernemq, как показано ниже.
`listener.ssl.cafile = /etc/vernemq/ssl/CA-cert.pem
listener.ssl.certfile = /etc/vernemq/ssl/server-cert.pem
listener.ssl.keyfile = /etc/vernemq/ssl/server-key.pem
listener.ssl.require_certificate = on
listener.ssl.default = 127.0.0.1:8883
listener.ssl.use_identity_as_username = on`
Я использую java программу в качестве клиента для vernemq. Ниже код, который я использую для связи ssl.
`String serverUrl = "ssl://127.0.0.1:8883";
String caFilePath = "/etc/vernemq/ssl/CA-cert.pem";
String clientCrtFilePath = "/etc/vernemq/ssl/john.crt";
String clientKeyFilePath = "/etc/vernemq/ssl/john.key";
MqttClient client;
client = new MqttClient(serverUrl, "john");
MqttConnectOptions options = new MqttConnectOptions();
options.setUserName("john");
options.setPassword("root".toCharArray());
options.setConnectionTimeout(100);
options.setCleanSession(false);
SSLSocketFactory socketFactory = getSocketFactory(caFilePath, clientCrtFilePath,
clientKeyFilePath, "root");
options.setSocketFactory(socketFactory);
System.out.println("starting connect the server...");
client.connect(options);
System.out.println("connected!");
Thread.sleep(1000);
client.subscribe("/u/56ca327d17531d08e76bddd);
client.disconnect();
System.out.println("disconnected!");`
Я могу подключиться к vernemq, используя tcp: //127.0.0.1: 1883, но не могу подключиться к ssl: //127.0.0.1: 8883. Я получаю приведенную ниже ошибку в консоли java. Любой может помочь решить эту проблему. Я использую самоподписанные сертификаты.
MqttException (0) - java.net.SocketException: Connection reset