Как получить набор шифров, используемый в HiveMQ Client? - PullRequest
1 голос
/ 30 июня 2019

Я настроил сервер HiveMQ на распознавание TLS и создал связь TLS. Я хотел бы распечатать используемые комплекты шифров. Я использовал getSslConfig (), но в итоге получаю это как вывод:

Optional[com.hivemq.client.internal.mqtt.MqttClientSslConfigImpl@2710]

Я знаю, что в MqttClientSslConfig.java есть метод getCipherSuites(), но я не смог найти способ его использовать. В качестве продолжения, как мне указать конкретный набор шифров? До сих пор я просто использовал стандартный по умолчанию, например:

Код (Как указать конкретный набор шифров?):

Mqtt5BlockingClient subscriber = Mqtt5Client.builder()
        .identifier(UUID.randomUUID().toString()) // the unique identifier of the MQTT client. The ID is randomly generated between 
        .serverHost("localhost")  // the host name or IP address of the MQTT server. Kept it localhost for testing. localhost is default if not specified.
        .serverPort(8883)  // specifies the port of the server
        .addConnectedListener(context -> ClientConnectionRetreiver.printConnected("Subscriber1"))        // prints a string that the client is connected
        .addDisconnectedListener(context -> ClientConnectionRetreiver.printDisconnected("Subscriber1"))  // prints a string that the client is disconnected
        .sslWithDefaultConfig()  // << How can I specify a particular cipher suite?
        .buildBlocking();  // creates the client builder

Код (как я пытался получить конфигурацию SSL):

Mqtt5ClientConfig clientConfig = client.getConfig();
System.out.println(" Ssl Configuration: " + clientConfig.getSslConfig());

1 Ответ

1 голос
/ 01 июля 2019

Вы можете настроить определенный набор шифров следующим образом:

Mqtt5Client.builder()
        ...
        .sslConfig()
            .cipherSuites(Arrays.asList("TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"))
            .applySslConfig()
        ...

getSslConfig возвращает Optional. Итак, чтобы получить набор шифров:

client.getConfig().getSslConfig().get().getCipherSuites()
...