クライアントcertficate認証を使用してssl://iot.eclipse.org:8883に接続します。TLSでMQTTサーバーに接続するためのCA証明書 - iot.eclipse.org
どのようにCA証明書を取得できますか?
提供されたCA証明書を使用して独自のクライアント証明書を生成する必要がありますか。 また、クライアント証明書もCA証明書とともにバンドルされています。
クライアントcertficate認証を使用してssl://iot.eclipse.org:8883に接続します。TLSでMQTTサーバーに接続するためのCA証明書 - iot.eclipse.org
どのようにCA証明書を取得できますか?
提供されたCA証明書を使用して独自のクライアント証明書を生成する必要がありますか。 また、クライアント証明書もCA証明書とともにバンドルされています。
openssl
を使用して確認すると、iot.eclipse.orgの証明書はLet's Encryptプロジェクトのものです。
$ openssl s_client -showcerts -connect iot.eclipse.org:8883CONNECTED(00000003)
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/CN=iot.eclipse.org
i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----
この証明書が最新のOS /アプリケーションの標準CAで有効であることを確認する必要があります。
明白な理由で独自のクライアント証明書を生成するためにCA証明書/秘密鍵を取得することはできず、クライアント証明書も発行しません(eclipse.orgブローカーが同じCAを持つクライアントを認証する必要はありません)。
公開ブローカーのように特定のトピックを購読/公開できるユーザーを制御するACLを設定する方法がないため、このブローカーに対して認証することは意味がありません。
EDIT:クライアント証明書認証をしたくない場合は、サーバー証明書を確認するだけですが、これは非常に異なります。
mosquitto_pub
またはmosquitto_sub
でこれを行うには、接続にssl/tlsを有効にするために、CA証明書または複数の証明書のディレクトリへのパスを指定する必要があります。プライベートCAを使用している場合は、個々のCA証明書を指定しますが、iot.eclipse.orgブローカーはよく知られているパブリックCAを使用しているため、CA証明書のシステムコレクションへのパスを指定する必要があります。次のようにあなたが公開します/etc/ssl/certs
であるLinuxの
:
mosquitto_pub -h iot.eclipse.org -p 8883 --capath /etc/ssl/certs/ -t testing/ben -m foo
証明書は、あなたの身元を証明するパスポートのようなものであれば、CAはちょうどパスポート事務所(1)のようなものです。 Verisign、Entrustなどをパスポート事務所とみなすことができます。 CA証明書は、パスポートが有効かどうかを確認する手段を提供するパスポート局に似ています。
2人の当事者(サーバーとクライアントを読み取る)の身元を証明するために、証明書を使用することができます。パーティー(サーバーの読み取り)の信頼性を確認するには、CA証明書が必要です。 Linuxシステム(Ubuntu)は、一般的に使用されるCA証明書を/etc/ssl/certsに保持しています。
クライアント証明書は、サーバーに自分自身を認証する必要がある場合にのみ必要です。ここでサーバーはiot.eclipse.orgで、クライアント認証を要求しないため、クライアント証明書は必要ありません。
したがって、サーバ(TLS読み取り)と安全に通信するには、システム(Ubuntu)に存在するCAストアを以下のように使用できます。
mosquitto_pub -h iot.eclipse.org -p 8883 -t my_topic -m my_message --capath /etc/ssl/certs/
iot.eclipse.orgでクライアント証明書の認証がサポートされていますか?どのブローカーがどのACLに適用されるかには影響しないため、このブローカーに対して認証することで何を達成しようとしていますか? – hardillb
@hardlib - 証明書と関連リソースに関してMQTTクライアント側の要件を理解するために、SSL対応MQTTサーバーへの接続性をテストしたいと思います。 **サーバー証明書auth **および **クライアント証明書認証**のいずれかを使用して認証が行われた場合。 * http://iot.eclipse.org/getting-started#sandboxesによると、SSLは8883でサポートされています。 MQTTクライアントからの** iot.eclipse.org:8883 **への接続にはCAが必要ですクライアント証明書の認証も行われます。 **そうじゃないですか?** – blueSky
通常、プライベートCAを使用している場合は、CAファイルを明示的に指定する必要があります。 – hardillb