メニュー
Amazon API Gateway
開発者ガイド

バックエンドによる認証のためのクライアント側 SSL 証明書を使用する

API Gateway を使用して SSL 証明書を生成し、バックエンドでそのパブリックキーを使用して、バックエンドシステムへの HTTP リクエストが API Gateway からのものであることを確認できます。これにより、HTTP バックエンドは、バックエンドがパブリックにアクセス可能であっても、Amazon API Gateway から送信されるリクエストのみを制御し、受け入れることができます。

注記

一部のバックエンドサーバーは、API Gateway のようには SSL クライアント認証をサポートしていない場合があり、SSL 証明書エラーを返す可能性があります。互換性のないバックエンドサーバーのリストについては、「既知の問題」を参照してください。

API Gateway によって生成される SSL 証明書は自己署名されており、証明書のパブリックキーのみ API Gateway コンソールで、または API を通じて表示されます。

API Gateway コンソールを使用してクライアント証明書を生成する

  1. メインナビゲーションペインで、[Client Certificates] を選択します。

  2. [クライアント証明書] ペインから、[クライアント証明書の生成] を選択します。

  3. オプションで、[編集] により、生成された証明書を説明するタイトルを追加し、[保存] を選択してその説明を保存できます。API Gateway は新しい証明書を生成し、PEM エンコードされた公開鍵とともに新しい証明書 GUID を返します。

     API Gateway でクライアント側 SSL 証明書を作成する

これで API で証明書を使用するように設定する準備が整いました。

API で SSL 証明書を使用するように設定する

これらの手順は、「API Gateway コンソールを使用してクライアント証明書を生成する」をすでに完了していることを前提としています。

  1. API Gateway コンソールで、クライアント証明書を使用する API を作成するか開きます。API がステージにデプロイされていることを確認します。

  2. 選択された API で [Stages] を選択し、ステージを選択します。

  3. [Stage Editor] パネルで、[Client Certificate] セクションの証明書を選択します。

  4. [変更の保存] を選択して設定を保存します。

     API Gateway で API のクライアント側 SSL 証明書を設定する

API に対して証明書が選択され保存されると、API Gateway は API での HTTP 統合へのすべての呼び出しにこの証明書を使用します。

テスト呼び出し

  1. API メソッドを選択します。[Client] で、[Test] を選択します。

  2. [Client Certificate] から、[Test] を選択してメソッドリクエストを呼び出します。

     API Gateway でクライアント側 SSL 証明書を使用して API 認証をテストする

API Gateway は、API を認証するために、選択された SSL 証明書を HTTP バックエンドに提示します。

バックエンドで API を認証するように設定する

これらの手順は、「API Gateway コンソールを使用してクライアント証明書を生成する」と「API で SSL 証明書を使用するように設定する」をすでに完了していることを前提としています。

API Gateway から HTTPS リクエストを受信すると、バックエンドは、API Gateway で生成された PEM エンコードされた証明書を使用して API を認証できます (ただし、バックエンドが適切に設定されていることを条件とします)。ほとんどのウェブサーバーは、この目的に合わせて簡単に設定できます。

たとえば、Node.js では、HTTPS モジュールを使用して HTTPS バックエンドを作成し、client-certificate-auth モジュールを使用して PEM エンコードされた証明書でクライアントのリクエストを認証できます。詳細については、Nodejs.org ウェブサイトで「HTTPS」を参照し、https://www.npmjs.com/ ウェブサイトの「client-certificate-auth」を参照してください。