

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

# サーバー認証
<a name="server-authentication"></a>

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

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

## エンドポイントタイプ
<a name="endpoint-types"></a>

AWS IoT Core は をサポートします`iot:Data-ATS`。 `iot:Data-ATS`エンドポイントは、[Amazon Trust Services](https://www.amazontrust.com/repository/) CA によって署名されたサーバー証明書を提供します。

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

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

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

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

### AWS SDK for Java `IotDataPlaneClient`を使用した の作成
<a name="java-client"></a>

`iot:Data-ATS` エンドポイントを使用する `IotDataPlaneClient` を作成するには、以下を実行する必要があります。
+ [DescribeEndpoint](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html) API を使用して `iot:Data-ATS` エンドポイントを作成します。
+ `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 証明書
<a name="server-authentication-certs"></a>

使用しているデータエンドポイントのタイプとネゴシエートした暗号スイートに応じて、 AWS IoT Core サーバー認証証明書は次のいずれかのルート CA 証明書によって署名されます。

**Amazon Trust Services エンドポイント (推奨)**

**注記**  
場合によって、以下のリンクを右クリックし、**[Save link as...]** (名前を付けてリンク先を保存) を選択して、これらの証明書をファイルとして保存する必要があります。
+ RSA 2048 ビットキー: [https://www.amazontrust.com/repository/AmazonRootCA1.pem](https://www.amazontrust.com/repository/AmazonRootCA1.pem)。
+ RSA 4096 ビットキー: Amazon Root CA 2。将来の利用のために予約されています。
+ ECC 256 ビットキー: [https://www.amazontrust.com/repository/AmazonRootCA3.pem](https://www.amazontrust.com/repository/AmazonRootCA3.pem)。
+ ECC 384 ビットキー: Amazon Root CA 4。将来の利用のために予約されています。

これらの証明書はすべて、[ Starfield ルート CA 証明書](https://www.amazontrust.com/repository/SFSRootCAG2.pem)によってクロス署名されています。アジアパシフィック (ムンバイ) AWS IoT Core リージョン AWS IoT Core での の 2018 年 5 月 9 日に開始されたすべての新しいリージョンは、ATS 証明書のみを提供します。

**VeriSign エンドポイント (レガシー)**
+ RSA 2048 ビットキー: [VeriSign クラス 3 Public Primary G5 ルート CA 証明書 ](https://www.digicert.com/kb/digicert-root-certificates.htm)

## サーバー認証のガイドライン
<a name="server-authentication-guidelines"></a>

 AWS IoT Core サーバー認証証明書を検証するデバイスの機能に影響を与える可能性のある多くの変数があります。例えば、デバイスのメモリ制限が大きすぎてルート CA 証明書をすべて保持できない場合や、デバイスが証明書検証の標準以外の方法を実装している場合があります。これらの理由から、次のガイドラインに従うことをお勧めします。
+ ATS エンドポイントを使用して、サポートされているすべての Amazon Root CA 証明書をインストールすることをお勧めします。
+ これらの証明書をすべてデバイスに保存できず、デバイスが ECC ベースの検証を使用していない場合は、[https://www.amazontrust.com/repository/AmazonRootCA3.pem](https://www.amazontrust.com/repository/AmazonRootCA3.pem) および [https://www.amazontrust.com/repository/AmazonRootCA4.pem](https://www.amazontrust.com/repository/AmazonRootCA4.pem) ECC 証明書を省略できます。デバイスが RSA ベースの証明書検証を実装していない場合は、[https://www.amazontrust.com/repository/AmazonRootCA1.pem](https://www.amazontrust.com/repository/AmazonRootCA1.pem) および [https://www.amazontrust.com/repository/AmazonRootCA2.pem](https://www.amazontrust.com/repository/AmazonRootCA2.pem) RSA 証明書を省略できます。場合によって、以下のリンクを右クリックし、[**Save link as... (名前を付けてリンク先を保存)**] を選択して、これらの証明書をファイルとして保存する必要があります。
+ ATS エンドポイントに接続するときにサーバー証明書の検証の問題が発生した場合は、関連するクロス署名付き Amazon ルート CA 証明書を信頼ストアに追加してみてください。場合によって、以下のリンクを右クリックし、[**Save link as... (名前を付けてリンク先を保存)**] を選択して、これらの証明書をファイルとして保存する必要があります。
  + [相互署名済み Amazon Root CA 1](https://www.amazontrust.com/repository/G2-RootCA1.pem)
  + [相互署名済みの Amazon Root CA 2](https://www.amazontrust.com/repository/G2-RootCA2.pem) - 将来の使用のために予約済みです。
  + [相互署名済み Amazon Root CA 3](https://www.amazontrust.com/repository/G2-RootCA3.pem)
  + [相互署名済みの Amazon Root CA 4](https://www.amazontrust.com/repository/G2-RootCA4.pem) - 将来の使用のために予約済みです。
+ サーバー証明書の検証の問題が発生した場合は、デバイスがルート CA を明示的に信頼する必要がある可能性があります。[https://www.amazontrust.com/repository/SFSRootCAG2.pem](https://www.amazontrust.com/repository/SFSRootCAG2.pem) を信頼ストアに追加してみてください。
+ 上記の手順を実行しても問題が解決しない場合は、[AWS デベロッパーサポート](https://aws.amazon.com/premiumsupport/plans/developers/)にお問い合わせください。

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

**注記**  
デバイスコード AWS IoT Core で に接続するときは、接続に使用している API に証明書を渡します。使用する API は SDK によって異なります。詳細については、「[AWS IoT Core デバイス SDK](iot-sdks.md)」を参照してください。