サーバー認証 - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サーバー認証

デバイスまたは他のクライアントが に接続しようとすると AWS IoT Core、 AWS IoT Core サーバーは、デバイスがサーバーを認証するために使用する X.509 証明書を送信します。認証は、X.509 証明書チェーン の検証を通じてTLSレイヤーで行われます。これは、 HTTPS にアクセスするときにブラウザで使用される方法と同じですURL。独自の認証機関からの証明書を使用する場合は、「CA 証明書の管理」を参照してください。

デバイスまたは他のクライアントが TLSへの接続を確立する場合 AWS IoT Core エンドポイント、 AWS IoT Core は、デバイスが通信していることを確認するために使用する証明書チェーンを提示します。 AWS IoT Core 別のサーバーを偽装するのではなく、 AWS IoT Core。 表示されるチェーンは、デバイスが接続しているエンドポイントのタイプと、クライアントと の暗号スイートの組み合わせによって異なります。 AWS IoT Core TLS ハンドシェイク中に がネゴシエートしました。

エンドポイントタイプ

AWS IoT Core は をサポートしますiot:Data-ATSiot:Data-ATSエンドポイントは、Amazon Trust Services CA によって署名されたサーバー証明書を提供します。

ATS エンドポイントによって提示される証明書は、Starfield によってクロス署名されます。一部のTLSクライアント実装では、信頼のルートの検証が必要であり、Starfield CA 証明書がクライアントの信頼ストアにインストールされている必要があります。

警告

証明書全体 (発行者名などを含む) をハッシュする証明書の固定方法を使用することは推奨されません。これは、提供する証明書が Starfield によってクロス署名され、発行者名が異なるため、ATS証明書の検証が失敗する原因となります。

重要

iot:Data-ATS エンドポイントを使用します。Symantec 証明書と Verisign 証明書は廃止され、 ではサポートされなくなりました AWS IoT Core.

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 への呼び出しはすべて、同じエンドポイントを返します。

注記

iot:Data-ATSエンドポイントを表示するには AWS IoT Core コンソールで、設定 を選択します。コンソールには iot:Data-ATS エンドポイントのみが表示されます。

IotDataPlaneClient を使用した の作成 AWS SDK for Java

iot:Data-ATS エンドポイントIotDataPlaneClientを使用する を作成するには、以下を実行する必要があります。

  • を使用して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 証明書によってクロス署名されています。すべての新しい AWS IoT Core リージョン、2018 年 5 月 9 日の のリリース以降 AWS IoT Core アジアパシフィック (ムンバイ) リージョンでは、 ATS 証明書のみを提供します。

VeriSign エンドポイント (レガシー)

サーバー認証のガイドライン

を検証するデバイスの機能に影響を与える可能性のある変数が多数あります。 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... (名前を付けてリンク先を保存)] を選択して、これらの証明書をファイルとして保存する必要があります。

  • サーバー証明書の検証の問題が発生した場合は、デバイスがルート CA を明示的に信頼する必要がある可能性があります。を追加してみてください Starfield Root CA Certificate を信頼ストアに。

  • 上記の手順を実行した後も問題が解決しない場合は、 にお問い合わせください。 AWS デベロッパーサポート

注記

CA 証明書には有効期限があり、その後、サーバー証明書の検証には使用できません。有効期限が切れる前に CA 証明書を交換する必要がある場合があります。すべてのデバイスまたはクライアントにインストールされているルート CA 証明書をアップデートして、進行中の接続を安全にし、セキュリティベストプラクティスを最新の状態に保つ必要があります。

注記

に接続する場合 AWS IoT Core デバイスコードで、接続にAPI使用している に証明書を渡します。API 使用する は、 によって異なりますSDK。詳細については、『』を参照してください。AWS IoT Core デバイス SDKs