※この記事は、IoTデバイスの接続に影響を与えるAzure IoT HubおよびDPSエンドポイントのTLS証明書の変更に関する重要な情報が含まれています。
※本記事については、Azure IoT Hub およびDPSを利用しているお客様が対象となります。
現在、Azure IoT HubおよびDPSを利用していないお客様はご確認いただく必要はありません。
※本記事については、2023年1月10日時点で公開情報を基に記載された内容となります。最新情報については、MS社の公開情報をご参照ください。
背景として、2020年にほとんどのAzureサービスが更新され、DigiCert Global G2 ルートまでチェーンする証明書機関(CA)からのTLS証明書を使用するようになりました。しかし、Azure IoT Hub と Device Provisioning Service(DPS)は、Baltimore CyberTrust Rootによって発行されたTLS証明書の使用を継続していました。
今後、Azure IoT HubおよびDPSにて、2023年2月からDigiCert Global G2 CA ルートに移行を開始し、2024年2月までにBaltimore CyberTrust CA Rootの利用が終了される予定です。
・この案内が重要な理由
TLS証明書の移行が完了すると、DigiCert Global G2 証明書を持たないデバイスがAzure IoT Hubに接続することができなくなります。そのため、2023年2月15日までにIoTデバイスにDigiCert Global G2ルート証明書が含まれていることを確認する必要があります。
今回のCAの更新によって、影響を受けるデバイスが世の中には多数存在していると想定しております。具体的には、使用するCAのリストを指定するような小型のデバイス等が考えられます。
AzureのIoTシナリオで利用される次のサービスにおいて2023年2月15日から2024年2月までにBaltimore CyberTrust Root から DigiCert Global G2 Root へ移行されます。
・Azure IoT Hub
・Azure IoT Hub Device Provisioning Service(DPS)
クライアントアプリケーションまたはデバイスの証明書ストアにDigiCert Global G2 Root が存在しない場合、AzureへのIoTデバイスの接続が中断されるのを防ぐための対応が必要です。
・必要なアクション
1.移行期間が完了するまで、デバイスでBoltimore CyberTrust Rootを使用し続けます 。
(接続の中断を防ぐために必要です)
2.Baltimore CyberTrust Root に加えて、DigiCert Global ルート G2 を信頼できるルート ストアに追加します。
3.中間証明書またはリーフ証明書を固定していないこと、およびパブリック ルートを使用して TLS サーバーの検証を実行していることを確認してください。
・確認方法
1.デバイスが Azure IoT SDK で提供されているもの以外の接続スタックを使用している場合は、次のアクションが必要です。
・この変更による中断なく続行するには、クライアント アプリケーションまたはデバイスが DigiCert Global G2 ルートを信頼することをお勧めします。
DigiCert Global Root G2
・将来の中断を防ぐために、クライアント アプリケーションまたはデバイスは、信頼できるストアに次のルートも追加する必要があります。
Microsoft RSA Root Certificate Authority 2017
(Thumbprint: 73a5e64a3bff8316ff0edccc618a906e4eae4d74)
2.クライアント アプリケーション、デバイス、またはネットワーク インフラストラクチャ (ファイアウォールなど) がコードでサブルート検証を実行する場合は、すぐに対応する必要があります。
・発行者、サブジェクト名、代替 DNS、拇印などのハード コーディングされたプロパティがある場合は、新しい証明書のプロパティを反映するようにこれを変更する必要があります。
※この追加の検証が行われた場合、すべての証明書がカバーされ、将来の接続の中断を防ぐ必要があります。
3.利用されているデバイスが以下の場合はすぐに対応することが必須ではないが、互換性を検証することが推奨されます。
(a)特にDigiCert Global G2 ルートを信頼しているデバイス
(b)CAルートを取得するためにOSの更新が有効になっているOSの証明書ストアに依存しているデバイス
(c)Microsoftから提供されているSDKを使用するデバイス
・シームレスな移行のために、それぞれのストアにボルチモアとグローバル G2 ルートの両方が含まれていることを確認してください。
・Windowsに関する手順はこちら
・Ubuntuに関する手順はこちら
・ハードコードされた証明書または言語ランタイムに依存している場合は、使用中のデバイス SDK に適切な DigiCert Global G2 ルートがあることを確認してください。
※デバイスならびにOSに関するお問い合わせは、提供元または販売元へお問い合わせください。
・検証
Azure IoT Hub および DPS に接続する IoT デバイスへの予期しない影響を軽減するために、基本的な検証を実施してください。このテストは、提供されているエンドポイントの 1 つ (IoT Hub 用と DPS 用) のいずれかを使用して実行できます。
テスト環境への TLS 接続が成功することが確認できた場合は、インフラストラクチャとデバイスがそのまま機能し、これらの変更に対応できていることが確認できます。
資格情報には無効なデータが含まれており、TLS 接続を確立する場合にのみ有効です。そのため、これらのサービスに対して実行されるランタイム操作 (テレメトリの送信など) はすべて失敗します。
※これらのテスト リソースは、お客様がデバイスの TLS 接続を検証するためだけに存在するため、これは仕様によるものです。
テスト環境の資格情報は次のとおりです。
・IoT Hub endpoint:g2cert.azure-devices.net
・Connection String: HostName=g2cert.azure-devices.net;DeviceId=TestDevice1;SharedAccessKey=iNULmN6ja++HvY6wXvYW9RQyby0nQYZB+0IUiUPpfec=
・Device Provisioning Service(DPS):
・Global Service Endpoint: g2-cert-dps.azure-devices-provisioning.net
・ID SCOPE: 0ne002B1DF7
・Registration ID: abc
もし、上記の TLS 接続を使用したテストではシナリオを検証するのに十分でない場合は、サポートに連絡して、特別なカナリア リージョンでのテスト用のデバイスまたは登録の作成を要求できます 。
テスト環境は、すべてのパブリック クラウド リージョンが新しいルート CA への更新を完了するまで利用できます。
・サポート
これらの変更の実装に関する技術的な質問がある場合、CP-TechWebからサポートの依頼を起票ください。
また、2023年2月15日までに移行の準備が間に合わない場合は、以下のフォームから証明書の更新を延長するリクエストをMS社へ実施することができます。
※TEDから更新の延長に関する問い合わせを実施することが叶いません。
証明書の更新延長に関するリクエストフォーム
・証明書の概要
次の表に、更新中の証明書に関する情報を示します。デバイスまたはゲートウェイ クライアントが TLS 接続の確立に使用する証明書によっては、接続が失われないようにするためのアクションが必要になる場合があります。
証明書 | 現行 | 更新後 (2023 年 2 月 15 日~2024 年 2 月 15 日) | 対応の可否 |
Root |
Thumbprint: d4de20d05e66fc53fe1a50882c78db2852cae474 OU = CyberTrust |
Thumbprint: df3c24f9bfd666761b268073fe06d1cc8d4f82a4 Expiration: Friday, January 15, 2038 5:00:00 AM Subject Name: CN = DigiCert Global Root G2 OU =www.digicert.com O = DigiCert Inc C = US |
必須 |
中間 |
Thumbprints:
CN = Microsoft RSA TLS CA 01 Thumbprint: 417e225037fbfaa4f95761d5ae729e1aea7e3a42 ---------------------------------------------------- CN = Microsoft RSA TLS CA 02 Thumbprint: b0c2d2d13cdd56cdaa6ab6e2c04440be4a429c75 ----------------------------------------------------
Expiration: Tuesday, October 8, 2024 12:00:00 AM; O = Microsoft Corporation C = US |
Thumbprints:
Will be provided once the test endpoints are updated. Stay tuned! --------------------------------------------------- |
必須 |
リーフ(IoT Hub) |
Subject Name: CN = *.azure-devices.net |
Subject Name: CN = *.azure-devices.net |
必須 |
リーフ(DPS) |
Subject Name: CN = *.azure-devices-provisioning.net |
Subject Name: CN = *.azure-devices-provisioning.net |
必須 |
Note:中間証明書とリーフ証明書の両方が頻繁に変更されることが予想されます。それらに依存するのではなく、ルート証明書を信頼することをお勧めします。
・Azure IoT HubのTLS証明書を手動で更新する
デバイスを準備し、2023 年 2 月より前に TLS 証明書の移行の準備ができている場合は、IoT ハブのルート証明書を自分で手動で移行できます。自動更新の場合は更新のタイミングをユーザー側で把握できないため、証明書の切り替え等で発生する通信の切断を回避したい場合は手動で実施することを推奨いたします。
※新しいルート証明書に移行した後、すべてのデバイスが切断され、新しい証明書に再接続されるまでに約 45 分かかります。
このタイミングは、Azure IoT SDK が 45 分ごとに接続を再確認するようにプログラムされているためです。
※DPSについては、手動移行オプションはありません。DPSの移行は、Azureで稼働しているすべての Azure IoT Hubの証明書の移行が完了されると自動的に行われます。予定ではDPSの移行は2024年1月15日に移行が開始される予定です。
操作手順
1.Azure portalで、IoT ハブに移動します。
2.ナビゲーション メニューの[セキュリティ設定] セクションで [証明書]を選択します。
3.[ TLS 証明書] タブを選択し、[ Migrate to DigiCert Global G2 ] を選択します。
4.一連のチェックボックスで、デバイスの移行準備が整っていることを確認するよう求められます。各ボックスをオンにして、IoT ソリューションが移行の準備ができていることを確認します。次に、 [更新]を選択します。
5.Connected Devicesメトリックを使用して、デバイスが新しい証明書で正常に再接続されていることを確認します。
もし、問題が発生した場合は、移行を元に戻し、Baltimore CyberTrust Root証明書に戻すことができます。
1.[Revert to Baltimore root] を選択して、移行を元に戻します。
2.繰り返しますが、一連のチェックボックスで、Baltimore CyberTrust Root に戻すとデバイスにどのような影響があるかを理解していることを確認するよう求められます。各ボックスをオンにして、 [更新]を選択します。
・本記事の基となる公開情報
・Azure IoT TLS: Critical changes are almost here! (…and why you should care)
https://techcommunity.microsoft.com/t5/internet-of-things-blog/azure-iot-tls-critical-changes-are-almost-here-and-why-you/ba-p/2393169
・Migrate IoT Hub resources to a new TLS certificate root
https://learn.microsoft.com/ja-jp/azure/iot-hub/migrate-tls-certificate?tabs=portal