2016-05-12 18 views
0

私はMQTTプロトコルで作業しています。私はサーバを設定し、ポート1883のmosquittoライブラリを使ってjavaで通信を行いました。 今、私はこの通信を安全にしたいと思っています。ポート8883はtlsベースの安全な通信用に予約されています。 X.509証明書が必要です。 この目的のために以下のチュートリアルが見つかりました。MQTT for JavaのTLS/SSL接続

http://www.embedded101.com/Blogs/PaoloPatierno/entryid/366/mqtt-over-ssl-tls-with-the-m2mqtt-library-and-the-mosquitto-broker

しかし、私の質問

1.howある私たちは、Javaコードでこれらの証明書を生成することができますか?

私たちは一度に複数の証明書を使用することができます。上のチュートリアルに従って、サーバのmosquitto.confファイルに一度に1セットの証明書しか指定できません。

私たちは、実行中のサーバーにこれらの新しく生成された証明書を知らせることができます。サーバーのconfファイルで指定する以外にこれを行う方法はありますか?

+0

moreiver、私はjavaでmqttブローカーを起動することができますか? – Sadaf

+0

なぜ複数の証明書を使用しますか? – hardillb

+0

異なるユースケースで複数のセンサーを使用していて、各センサーが同じブローカー上の異なるトピックと通信している場合。 – Sadaf

答えて

1

OK、証明書認証の仕組みを理解できていないと思います。

がまずブローカーが世界にそれを特定する1つの証明書を持っています(ブローカーは、それはその後、接続するクライアントが誰であるかを証明していると言う人である証明)それに2つの部分があります。起動時にこの証明書を使用するようMosquittoを設定し、変更する必要はありません。この証明書はCAによって署名されます。

センサ(クライアント)には、ブローカに接続するときに使用するCA証明書のコピーが含まれています。

第2に、クライアント証明書を使用して個別のセンサーを識別する場合は、それぞれに証明書も必要です。通常、これはブローカ証明書と同じCAによって署名されるため、ブローカはクライアントが自分が誰であると主張しているかを検証できます。接続するクライアントのユーザ名として証明書(use_identity_as_username true)のCNを使用するようにMosquittoを設定してから、mosquitto_auth_pluginを使用して証明書内のCNを追跡し、ACLを適用してどのトピックを使用できるかを制御できます。 Javaでの証明書の作成については

私はあなたがこのquestion

新しい証明書を発行する際にMosquittoを再起動する必要はありませんで見てください。

+0

よろしくお願いいたします。 しかし、mosquitto_auth_pluginについて少し説明することができます。私はjava eclipseプロジェクトでこれを使う方法を見つけません。 ありがとうございます。 – Sadaf

+0

これをmosquittoで設定すると、javaのJDBCを使用して、設定したデータベースがある新しいユーザ/ ACLエントリをプッシュできます – hardillb

+0

大丈夫です。しかし、私はこれらすべてのものに新しいです。これに関するいくつかの開発者ガイドやチュートリアルを共有できますか? 私はあなたに多くの義務があります。 – Sadaf

関連する問題