4

MQTT で SSL を使用しようとすると、次のエラーが発生します。

1379677998: Client connection from 127.0.0.1 failed: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number.
1379678058: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1379678058: Socket read error on client (null), disconnecting.

私のconfファイルには以下のような設定があります。

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)

テストフォルダーから 08-ssl-connect-cert-auth.test を実行します。以下に含まれるコードスニペット

    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);

環境情報:

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

ここで何がうまくいかないのか教えてください。また、gen.sh を使用して証明書を生成しようとしました。

前もって感謝します。

-ディリップ

4

1 に答える 1

2

一般的な注意事項として、独自の証明書を生成する必要があります。テスト用に mosquitto が提供する証明書を使用しないでください。また、独自の詳細のために変更せずに gen.sh スクリプトを使用してください。

all-ca.crt提供された証明書を使用するには、ブローカーで使用する必要があります。これには、ルート CA と中間 CA 証明書の例が含まれています。クライアントは、検証目的でルート CA のみを必要とします。

ブローカー構成では証明書への完全パスを使用していますが、クライアントでは相対パスを使用しています。どちらも正しいと確信していますか?

で変更せずにテストを実行してみましたmake testか? たとえば、openssl のインストールに問題があるかどうかがわかります。

于 2013-09-20T13:39:08.740 に答える