5 votes

MQTT: les routines SSL : SSL3_GET_RECORD : mauvais numéro de version

Je essaie d'utiliser SSL avec MQTT et reçois l'erreur suivante,

1379677998: Erreur de connexion du client 127.0.0.1 échouée : error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number.
1379678058: Erreur OpenSSL : error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1379678058: Erreur de lecture de socket sur le client (null), déconnexion.

Mon fichier de configuration a les paramètres suivants,

port 8883
cafile /home/administrator/Downloads/mosquitto-1.2.1_dilip/test/ssl/test-root-ca.crt (also tried all-ca.crt here)
certfile /home/administrator/Downloads/mosquitto-1.2.1_dilip/test/ssl/server.crt
keyfile /home/administrator/Downloads/mosquitto-1.2.1_dilip/test/ssl/server.key
tls_version tlsv1
require_certificate true (tried commenting this too)

et j'exécute le test 08-ssl-connect-cert-auth.test depuis le dossier de tests. Extrait de code inclus ci-dessous

    mosquitto_tls_opts_set(mosq, 1, "tlsv1", NULL);
    mosquitto_tls_set(mosq, "../ssl/test-root-ca.crt", "../ssl/certs", "../ssl/client.crt", "../ssl/client.key", NULL);
    mosquitto_connect_callback_set(mosq, on_connect);
    mosquitto_disconnect_callback_set(mosq, on_disconnect);

    rc = mosquitto_connect(mosq, "localhost", 8883, 60);

Informations sur l'environnement:

Python 2.7.3
OpenSSL 1.0.1 14 mars 2012
Description: Ubuntu 12.04.2 LTS
Release: 12.0
mosquitto-1.2.1/mosquitto-1.2

Merci de me dire ce qui pourrait poser problème ici? J'ai aussi essayé de générer des certificats en utilisant gen.sh.

Merci d'avance.

-Dilip

2voto

ralight Points 2253

En général - vous devriez générer vos propres certificats, ne pas utiliser ceux fournis par mosquitto pour les tests, ou utiliser le script gen.sh sans le modifier pour vos propres détails.

Pour utiliser les certificats fournis, vous devriez utiliser all-ca.crt dans le broker. Il contient les certificats d'exemple de l'AC racine et de l'AC intermédiaire. Le client n'a besoin que de l'AC racine à des fins de vérification.

Vous utilisez un chemin complet vers les certificats dans la configuration du broker, mais des chemins relatifs dans le client. Êtes-vous sûr qu'ils sont tous les deux corrects?

Avez-vous essayé d'exécuter les tests sans les modifier avec make test? Cela vous dirait s'il y a un problème avec votre installation openssl par exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X