【小ネタ】[AWS IoT] デバイスで使用中の証明書をレジストリの一覧から検索する方法

証明書 フィンガープリントで 捜索だ!  
2020.08.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

CX事業本部の平内(SIN)です。

AWS IoTでは、証明書で認証してMQTTのPub/Subが簡単に実装可能です。

このようなシステムを、久々に動かそうとして、「接続(Connect)できない!」となった時は、デバイス側で使用されている「証明書」が有効であり、かつ、「ポリシー」の内容が適切であるかの確認が必要になります。

「ポリシー」は、「証明書」に紐づくため、使用されている「証明書」が何であるのか?そして、その証明書がIoT Core のレジストリで「アクティブ」となっているかの確認が、最初の作業となります。

今回は、この要領を確認してみました。

2 証明書

AWS Iotのコンソールから証明書を開くと、管理されている証明書が一覧されます。 そして、ステータス欄で、アクティブとなっている証明書だけが有効なものです。

ここで一覧されている名前は、証明書のSHA256フィンガープリントです。

「モノ」を作成するときに、(推奨)となっている、1-Click 証明書の作成で証明書を作成した場合、ダウンロードできる証明書や秘密鍵は、ファイル名がフィンガープリントの初めの10文字となっているので、このままのファイル名でデバイス側で使用している場合は、ファイル名から捜索することが可能です。

3 フィンガープリント

もし、何らかの理由でファイル名を変更して使用していたり、そもそも、別の手段で証明書を生成している場合は、証明書のSHA256フィンガープリントを確認する必要があります。

※下記の2つの例は、どちらも、ファイル名を変更していませんが、ファイル名を変更していても確認は可能です。

(1) Mac

Mac上であれば、証明書をダブルクリックして、証明書を表示とすれば、SHA-256のところで確認できます。

(2) RaspberryPI

RaspberryPi上などで確認したい場合は、opensslコマンドが利用可能です。

$ openssl x509 -in 92626c4e69-certificate.pem.crt -noout -sha256 -fingerprint
SHA256 Fingerprint=92:62:6C:4E:69:68:16:5A:9A:65:9F:E6:E4:C1:F0:11:37:58:07:90:E0:BC:13:00:85:E2:90:F7:FE:62:E2:A9

4 ポリシー

当該証明書が、一覧の中から検索できれば、そこから、紐付いている「ポリシー」や「モノ」が分かります。

5 最後に

今回は、証明書のフィンガープリントから、レジストリでの管理状況や、紐付いている「モノ」や「ポリシー」を見つける要領を確認してみました。

久々に起動して、Connectしないと悲しいですよね・・・