翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サーバー認証
デバイスまたは他のクライアントが に接続しようとすると AWS IoT Core AWS IoT Core 、サーバーはデバイスがサーバーを認証するために使用する X.509 証明書を送信します。認証は、X.509 証明書チェーン の検証を通じてTLSレイヤーで行われます。これは、 HTTPS にアクセスするときにブラウザで使用されるのと同じ方法ですURL。独自の認証機関からの証明書を使用する場合は、「CA 証明書の管理」を参照してください。
デバイスまたは他のクライアントが AWS IoT Core エンドポイントTLSへの接続を確立すると、 は、デバイスが を偽装する別のサーバーではなく AWS IoT Core 、 と通信していることを確認するために使用する証明書チェーン AWS IoT Core を表します AWS IoT Core。表示されるチェーンは、デバイスが接続しているエンドポイントのタイプと、TLSハンドシェイク中にクライアントと が AWS IoT Core ネゴシエートした暗号スイートの組み合わせによって異なります。
エンドポイントタイプ
AWS IoT Core は、 iot:Data
と の 2 つの異なるデータエンドポイントタイプをサポートしますiot:Data-ATS
。 iot:Data
エンドポイントは、VeriSign クラス 3 パブリックプライマリ G5 ルート CA 証明書 によって署名された証明書を提供します。 iot:Data-ATS
エンドポイントは、Amazon Trust Services
ATS エンドポイントによって提示される証明書は、Starfield によってクロス署名されます。一部のTLSクライアント実装では、信頼のルートの検証が必要であり、Starfield CA 証明書がクライアントの信頼ストアにインストールされている必要があります。
警告
証明書全体 (発行者名などを含む) をハッシュする証明書の固定方法を使用することはお勧めしません。これは、提供する証明書が Starfield によってクロス署名され、発行者名が異なるため、ATS証明書の検証が失敗するためです。
重要
デバイスが Symantec または Verisign CA 証明書を必要としない限り、iot:Data-ATS
エンドポイントを使用します。Symantec および Verisign 証明書は廃止され、ほとんどのウェブブラウザでサポートされなくなりました。
describe-endpoint
コマンドを使用してATSエンドポイントを作成できます。
aws iot describe-endpoint --endpoint-type iot:Data-ATS
この describe-endpoint
コマンドは、次の形式でエンドポイントを返します。
account-specific-prefix
.iot.your-region
.amazonaws.com
注記
describe-endpoint
が初めて呼び出されると、エンドポイントが作成されます。以降の describe-endpoint
への呼び出しはすべて、同じエンドポイントを返します。
下位互換性のために、 AWS IoT Core Seltitle は Symantec エンドポイントをサポートしています。詳細については、「AWS IoT Core
による Symantec 認証局が今後信頼されなくなることに伴う問題への対応方法
注記
AWS IoT Core コンソールでiot:Data-ATS
エンドポイントを表示するには、設定 を選択します。コンソールには iot:Data-ATS
エンドポイントのみが表示されます。デフォルトでは、describe-endpoint
コマンドは下位互換性のために iot:Data
エンドポイントを表示します。iot:Data-ATS
エンドポイントを表示するには、前の例のように --endpointType
パラメータを指定します。
for Java IotDataPlaneClient
を使用した AWS SDK の作成
デフォルトでは、 AWS SDK for Java - バージョン 2 IotDataPlaneClient
はエンドポイントを使用して を作成しますiot:Data
。iot:Data-ATS
エンドポイントを使用するクライアントを作成するには、以下を実行する必要があります。
-
を使用して
iot:Data-ATS
エンドポイントを作成しますDescribeEndpointAPI。 -
IotDataPlaneClient
を作成するときに、そのエンドポイントを指定します。
次の例では、これらのオペレーションの両方を実行します。
public void setup() throws Exception { IotClient client = IotClient.builder().credentialsProvider(CREDENTIALS_PROVIDER_CHAIN).region(Region.US_EAST_1).build(); String endpoint = client.describeEndpoint(r -> r.endpointType("iot:Data-ATS")).endpointAddress(); iot = IotDataPlaneClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .endpointOverride(URI.create("https://" + endpoint)) .region(Region.US_EAST_1) .build(); }
サーバー認証用の CA 証明書
使用しているデータエンドポイントのタイプとネゴシエートした暗号スイートに応じて、 AWS IoT Core サーバー認証証明書は次のいずれかのルート CA 証明書によって署名されます。
Amazon Trust Services エンドポイント (推奨)
注記
場合によって、以下のリンクを右クリックし、[Save link as...] (名前を付けてリンク先を保存) を選択して、これらの証明書をファイルとして保存する必要があります。
-
RSA 2048 ビットキー: Amazon Root CA 1
。 -
RSA 4096 ビットキー: Amazon Root CA 2。将来の利用のために予約されています。
-
ECC 256 ビットキー: Amazon Root CA 3
。 -
ECC 384 ビットキー: Amazon Root CA 4。将来の利用のために予約されています。
これらの証明書はすべて、 Starfield ルート CA 証明書
VeriSign エンドポイント (レガシー)
-
RSA 2048 ビットキー: VeriSign クラス 3 パブリックプライマリ G5 ルート CA 証明書
サーバー認証のガイドライン
AWS IoT Core サーバー認証証明書を検証するデバイスの機能に影響を与える可能性のある多くの変数があります。例えば、デバイスのメモリ制限が大きすぎてルート CA 証明書をすべて保持できない場合や、デバイスが証明書検証の標準以外の方法を実装している場合があります。これらの理由から、次のガイドラインに従うことをお勧めします。
-
ATS エンドポイントを使用し、サポートされているすべてのAmazon Root CA証明書をインストールすることをお勧めします。
-
これらの証明書をすべてデバイスに保存できず、デバイスが ECCベースの検証を使用しない場合は、 Amazon Root CA 3
および Amazon Root CA 4 ECC証明書を省略できます。デバイスが RSAベースの証明書検証を実装していない場合は、 Amazon Root CA 1 および Amazon Root CA 2 RSA証明書を省略できます。場合によって、以下のリンクを右クリックし、[Save link as...] (名前を付けてリンク先を保存) を選択して、これらの証明書をファイルとして保存する必要があります。 -
ATS エンドポイントへの接続時にサーバー証明書の検証の問題が発生した場合は、関連するクロス署名された Amazon ルート CA 証明書を信頼ストアに追加してみてください。場合によって、以下のリンクを右クリックし、[Save link as...] (名前を付けてリンク先を保存) を選択して、これらの証明書をファイルとして保存する必要があります。
-
相互署名済みの Amazon Root CA 2
- 将来の使用のために予約済みです。 -
相互署名済みの Amazon Root CA 4
- 将来の使用のために予約済みです。
-
サーバー証明書の検証の問題が発生した場合は、デバイスがルート CA を明示的に信頼する必要がある可能性があります。Starfield Root CA Certificate
を信頼ストアに追加してみてください。 -
上記の手順を実行しても問題が解決しない場合は、AWS デベロッパーサポート
にお問い合わせください。
注記
CA 証明書には有効期限があり、その後、サーバー証明書の検証には使用できません。有効期限が切れる前に CA 証明書を交換する必要がある場合があります。すべてのデバイスまたはクライアントにインストールされているルート CA 証明書をアップデートして、進行中の接続を安全にし、セキュリティベストプラクティスを最新の状態に保つ必要があります。
注記
デバイスコード AWS IoT Core で に接続するAPIときは、接続に使用している に証明書を渡します。API 使用する は によって異なりますSDK。詳細については、AWS IoT Core 「 デバイスSDKs」を参照してください。