

# CloudFront で SSL/TLS 証明書を使用するための要件
<a name="cnames-and-https-requirements"></a>

このトピックでは、SSL/TLS 証明書の要件について説明します。これらの要件は、特に注記がなければ、以下の両方の証明書に適用されます。
+ ビューワーと CloudFront との間で HTTPS を使用するための証明書 
+ CloudFront とオリジンとの間で HTTPS を使用するための証明書

**Topics**
+ [証明書の発行者](#https-requirements-certificate-issuer)
+ [AWS リージョン 用の AWS Certificate Manager](#https-requirements-aws-region)
+ [証明書の形式](#https-requirements-certificate-format)
+ [中間証明書](#https-requirements-intermediate-certificates)
+ [キーのタイプ](#https-requirements-key-type)
+ [プライベートキー](#https-requirements-private-key)
+ [アクセス許可](#https-requirements-permissions)
+ [証明書キーのサイズ](#https-requirements-size-of-public-key)
+ [サポートされている証明書のタイプ](#https-requirements-supported-types)
+ [証明書の有効期限切れと更新](#https-requirements-cert-expiration)
+ [CloudFront ディストリビューションと証明書のドメイン名](#https-requirements-domain-names-in-cert)
+ [SSL/TLS プロトコルの最小バージョン](#https-requirements-minimum-ssl-protocol-version)
+ [サポートされる HTTP バージョン](#https-requirements-supported-http-versions)

## 証明書の発行者
<a name="https-requirements-certificate-issuer"></a>

[AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) 発行のパブリック証明書を仕様することをお勧めします。ACM からの証明書の取得の詳細については、*[AWS Certificate Manager ユーザーガイド](https://docs.aws.amazon.com/acm/latest/userguide/)*を参照してください。CloudFront ディストリビューションで ACM 証明書を使用するには、米国東部 (バージニア北部) リージョン (`us-east-1`) の証明書をリクエスト (またはインポート) していることを確認します。

 CloudFront は Mozilla と同じ認定権限 (CA) をサポートしているため、ACM を使用しない場合は、「[Mozilla に付属する CA 証明書一覧](https://wiki.mozilla.org/CA/Included_Certificates)」の CA が発行する証明書を使用します。

CloudFront ディストリビューションに指定したオリジンによって使用される TLS 証明書も、Mozilla に付属する CA 証明書一覧に含まれる CA から発行されている必要があります。

証明書の取得とインストール方法については、使用している HTTP サーバーソフトウェアのドキュメントおよび CA のドキュメントを参照してください。

## AWS リージョン 用の AWS Certificate Manager
<a name="https-requirements-aws-region"></a>

AWS Certificate Manager (ACM) の証明書を使用して、ビューワーと CloudFront との間で HTTPS を必須にする場合は、米国東部 (バージニア北部) リージョン (`us-east-1`) の証明書をリクエスト (またはインポート) していることを確認します。

CloudFront とオリジンとの間で HTTPS を必須にする場合、オリジンとして Elastic Load Balancing のロードバランサーを使用していれば、任意の AWS リージョン で証明書をリクエストまたはインポートできます。

## 証明書の形式
<a name="https-requirements-certificate-format"></a>

公開証明書は X.509 PEM 形式で作成されている必要があります。これは、AWS Certificate Manager を使用する場合のデフォルトの形式です。

## 中間証明書
<a name="https-requirements-intermediate-certificates"></a>

サードパーティー認定権限 (CA) を使用している場合、`.pem` ファイルには、ドメインの証明書の署名者である CA の証明書から始めて、証明書チェーン内のすべての中間証明書を含めます。通常は、適切なチェーン順で中間証明書とルート証明書を並べたファイルが CA のウェブサイトに用意されています。

**重要**  
ルート証明書、信頼パス内に存在しない中間証明書、CA の公開キー証明書は含めないでください。

例を示します。

```
-----BEGIN CERTIFICATE-----
Intermediate certificate 2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Intermediate certificate 1
-----END CERTIFICATE-----
```

## キーのタイプ
<a name="https-requirements-key-type"></a>

CloudFront は RSA および ECDSA パブリック (公開) とプライベートのキーペアをサポートします。

CloudFront は、RSA 証明書と ECDSA 証明書を使用して、ビューワーとオリジンの両方への HTTPS 接続をサポートします。[AWS Certificate Manager (ACM)](https://console.aws.amazon.com/acm) では、RSA または ECDSA 証明書をリクエストしてインポートし、CloudFront ディストリビューションに関連付けることができます。

HTTPS 接続でネゴシエートできる CloudFront でサポートされている RSA および ECDSA 暗号のリストについては、「[ビューワーと CloudFront との間でサポートされているプロトコルと暗号](secure-connections-supported-viewer-protocols-ciphers.md)」および「[CloudFront とオリジンとの間でサポートされているプロトコルと暗号](secure-connections-supported-ciphers-cloudfront-to-origin.md)」を参照してください。

## プライベートキー
<a name="https-requirements-private-key"></a>

サードパーティー認証機関 (CA) の証明書を使用している場合、以下の点に注意してください。
+ プライベートキーが証明書のパブリックキーと一致している。
+ プライベートキーは、PEM 形式でなければなりません。
+ プライベートキーはパスワードで暗号化できません。

AWS Certificate Manager (ACM) が証明書を提供した場合、ACM はプライベートキーをリリースしません。プライベートキーは、ACM に統合された AWS のサービスによる使用のために、ACM に保存されます。

## アクセス許可
<a name="https-requirements-permissions"></a>

SSL/TLS 証明書を使用およびインポートするアクセス許可が必要です。AWS Certificate Manager (ACM) を使用している場合は、AWS Identity and Access Management アクセス許可を使用して証明書へのアクセスを制限することをお勧めします。詳細については、『*AWS Certificate Manager ユーザーガイド*』の「[Identity and Access Management](https://docs.aws.amazon.com/acm/latest/userguide/security-iam.html)」を参照してください。

## 証明書キーのサイズ
<a name="https-requirements-size-of-public-key"></a>

CloudFront がサポートする証明書キーのサイズは、キーと証明書の種類によって異なります。

**RSA 証明書の場合: **  
CloudFront は、1024 ビット、2048 ビット、3072 ビット、4096 ビットの RSA キーをサポートしています。CloudFront で使用できる RSA 証明書のキーの長さは最大 4096 ビットです。  
 ACM が発行する RSA 証明書のキーの最大長は 2048 ビットであることに注意してください。3072 ビットまたは 4096 ビットの RSA 証明書を使用するには、証明書を外部から取得して ACM にインポートする必要があります。これにより、CloudFront で使用できるようになります。  
RSA キーのサイズを確認する方法については、「[SSL/TLS RSA 証明書内のパブリックキーのサイズを確認する](cnames-and-https-size-of-public-key.md)」を参照してください。

**ECDSA 証明書の場合: **  
CloudFront は、256 ビットキーをサポートしています。ACM の ECDSA 証明書を使用して、ビューワーと CloudFront との間で HTTPS を必須にするには、prime256v1 楕円曲線を使用します。

## サポートされている証明書のタイプ
<a name="https-requirements-supported-types"></a>

CloudFront は、信頼された認証機関によって発行されたすべてのタイプの証明書をサポートしています。

## 証明書の有効期限切れと更新
<a name="https-requirements-cert-expiration"></a>

サードパーティー認定権限 (CA) から取得した証明書を使用する場合、証明書の有効期限切れをモニタリングし、AWS Certificate Manager (ACM) にインポートする、または AWS Identity and Access Management 証明書ストアにアップロードする証明書を有効期限前に更新する必要があります。

**重要**  
証明書の有効期限の問題を回避するには、現在の証明書の `NotAfter` 値の少なくとも 24 時間前に証明書を更新または再インポートします。証明書の有効期限が 24 時間以内に切れる場合は、ACM に新しい証明書をリクエストするか、新しい証明書を ACM にインポートします。次に、新しい証明書を CloudFront ディストリビューションに関連付けます。  
CloudFront は、証明書の更新または再インポートの進行中に、以前の証明書を引き続き使用する場合があります。これは非同期プロセスであり、CloudFront に変更が反映されるまでに最大 24 時間かかることがあります。

ACM が提供する証明書を使用している場合は、ACM がユーザーに代わって証明書の更新を管理します。詳細については、*AWS Certificate Manager ユーザーガイド* の「[管理された更新](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)」を参照してください。

## CloudFront ディストリビューションと証明書のドメイン名
<a name="https-requirements-domain-names-in-cert"></a>

カスタムオリジンを使用する場合、オリジンの SSL/TLS 証明書の**共通名**フィールドにドメイン名が含まれ、さらに**サブジェクト代替名**フィールドにもドメイン名がいくつか含まれることがあります。(CloudFront では証明書ドメイン名にワイルドカード文字を使用できます)。

証明書のドメイン名のうち 1 つは、オリジンドメイン名に指定したドメイン名と一致する必要があります。ドメイン名が一致しない場合、CloudFront は HTTP ステータスコード `502 (Bad Gateway)` をビューワーに返します。

**重要**  
ディストリビューションに代替ドメイン名を追加する場合、CloudFront はこの代替ドメイン名が添付した証明書の対象であることを確認します。証明書は、証明書のサブジェクト代替名 (SAN) フィールドの代替ドメイン名をカバーする必要があります。つまり、SAN フィールドは、代替ドメイン名と完全に一致するか、追加する代替ドメイン名の同じレベルにワイルドカードが含まれている必要があります。  
詳細については、「[代替ドメイン名を使用するための要件](CNAMEs.md#alternate-domain-names-requirements)」を参照してください。

## SSL/TLS プロトコルの最小バージョン
<a name="https-requirements-minimum-ssl-protocol-version"></a>

専用 IP アドレスを使用している場合、セキュリティポリシーを選ぶことでビューワーと CloudFront との間の接続に最小 SSL/TLS プロトコルバージョンを設定できます。

詳細については、トピック「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」の「[セキュリティポリシー (SSL/TLS の最小バージョン）](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)」を参照してください。

## サポートされる HTTP バージョン
<a name="https-requirements-supported-http-versions"></a>

1 つの証明書を複数の CloudFront ディストリビューションに関連付ける場合、証明書に関連付けられたすべてのディストリビューションで、[サポートされる HTTP バージョン](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions) に対して同じオプションを使用する必要があります。このオプションは、CloudFront ディストリビューションを作成または更新するときに指定します。