Amazon API Gateway
開発者ガイド

AWS Certificate Manager で証明書の準備をする

API のカスタムドメイン名を設定する前に、AWS Certificate Manager で SSL/TLS 証明書を準備する必要があります。次のステップでそのやり方を説明します。詳細については、AWS Certificate Manager ユーザーガイド を参照してください。

注記

API Gateway のエッジ最適化されたカスタムドメイン名を持つ ACM 証明書を使用するには、米国東部(バージニア北部) us-east-1 リージョンで証明書をリクエストまたはインポートする必要があります。API Gateway リージョンのカスタムドメイン名については、API と同じリージョンで証明書を要求またはインポートする必要があります。

ACM 発行の、または、インポートされた指定のドメイン名の証明書を取得するには

  1. インターネットのドメインを登録します。例:myDomain.comAmazon Route 53、または認定されているサードパーティーのドメインレジストラを使用できます。そのようなレジストラの一覧については、ICANN のウェブサイトの認定レジストラディレクトリを参照してください。

  2. ドメイン名の SSL/TLS 証明書を ACM で作成またはインポートするには、次のいずれかを行います。

    ACM により提供されたドメイン名の証明書をリクエストするには

    1. AWS Certificate Manager コンソールにサインインします。

    2. [Request a certificate] を選択します。

    3. [Domain name] に API のカスタムドメイン名を入力します (例:api.example.com)。

    4. 必要に応じて、[Add another name to this certificate] を選択します。

    5. [Review and request] を選択します。

    6. [Confirm and request] を選択します。

    7. リクエストが有効であるためには、ACM が証明書を発行する前に、インターネットドメインの登録された所有者がリクエストに同意する必要があります。

    ACM にドメイン名の証明書をインポートするには

    1. 証明機関からカスタムドメイン名の PEM エンコード SSL/TLS 証明書を取得します。このような CA のリストの一部については、「Mozilla Included CA List」を参照してください。

      1. 証明書のプライベートキーを生成し、OpenSSL ウェブサイトの OpenSSL ツールキットを使用して出力をファイルに保存します。

        openssl genrsa -out private-key-file 2048

        注記

        Amazon API Gateway は Amazon CloudFront を利用して、カスタムドメイン名の証明書をサポートします。そのため、カスタムドメイン名の SSL/TLS 証明書の要件と制約は CloudFront によって指定されます。たとえば、パブリックキーの最大サイズは 2048 で、プライベートキーのサイズは 1024、2048、または 4096 とすることができます。パブリックキーのサイズは、使用している認証機関によって決まります。デフォルトの長さと異なるサイズのキーを返すよう認証機関に依頼します。詳細については、「HTTPS 接続を使用したオブジェクトへのアクセス」および「署名付き URL と署名付き Cookie (信頼された署名者) の作成が可能な AWS アカウントの指定」を参照してください。

      2. OpenSSL を使用して、以前に作成されたプライベートキーで証明書署名リクエスト (CSR) を生成します。

        openssl req -new -sha256 -key private-key-file -out CSR-file
      3. CSR を認証機関に送信し、結果として生じる証明書を保存します。

      4. 認証機関から証明書チェーンをダウンロードします。

      注記

      別の方法でプライベートキーを取得し、キーが暗号化されている場合は、次のコマンドを使用してキーを復号してから、カスタムドメイン名を設定するためにキーを API Gateway に送信できます。

      openssl pkcs8 -topk8 -inform pem -in MyEncryptedKey.pem -outform pem -nocrypt -out MyDecryptedKey.pem
    2. 証明書を AWS Certificate Manager へアップロードする

      1. AWS Certificate Manager コンソールにサインインします。

      2. [Import a certificate] を選択します。

      3. [Certificate body] に、証明機関からの PEM 形式のサーバー証明書の本文を入力するか貼り付けます。このような証明書の省略された例を次に示します。

        -----BEGIN CERTIFICATE----- EXAMPLECA+KgAwIBAgIQJ1XxJ8Pl++gOfQtj0IBoqDANBgkqhkiG9w0BAQUFADBB ... az8Cg1aicxLBQ7EaWIhhgEXAMPLE -----END CERTIFICATE-----
      4. [Certificate private key] に、PEM 形式の証明書のプライベートキーを入力するか貼り付けます。このようなキーの省略された例を次に示します。

        -----BEGIN RSA PRIVATE KEY----- EXAMPLEBAAKCAQEA2Qb3LDHD7StY7Wj6U2/opV6Xu37qUCCkeDWhwpZMYJ9/nETO ... 1qGvJ3u04vdnzaYN5WoyN5LFckrlA71+CszD1CGSqbVDWEXAMPLE -----END RSA PRIVATE KEY-----
      5. [Certificate chain] に、PEM 形式の中間証明書を (必要に応じてルート証明書も) 空白行なしに連続して入力するか貼り付けます。ルート証明書を含める場合は、証明書チェーンの先頭は中間証明書で、末尾がルート証明書である必要があります。証明機関によって提供された中間証明書を使用します。信頼パスのチェーン内に存在しない中間証明書は含めないでください。次の例で省略された例を示します。

        -----BEGIN CERTIFICATE----- EXAMPLECA4ugAwIBAgIQWrYdrB5NogYUx1U9Pamy3DANBgkqhkiG9w0BAQUFADCB ... 8/ifBlIK3se2e4/hEfcEejX/arxbx1BJCHBvlEPNnsdw8EXAMPLE -----END CERTIFICATE-----

        別の例を示します。

        -----BEGIN CERTIFICATE----- Intermediate certificate 2 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Intermediate certificate 1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Optional: Root certificate -----END CERTIFICATE-----
      6. [Review and import] を選択します。

  3. 証明書が正常に作成またはインポートされた後、証明書の ARN をメモします。次回カスタムドメイン名を設定する際に必要になります。