HTTPSはHTTPの拡張であり、SSL/TLSプロトコルを使用してクライアントとサーバー間のデータ伝送を暗号化します。 サービスがユーザー情報やID情報などの機密データを送信する必要がある場合、またはサービスのセキュリティを向上させたい場合は、Classic Load Balancer (CLB) インスタンスにHTTPSリスナーを追加できます。 HTTPSリスナーは、暗号化された接続を介してHTTPSリクエストを転送できます。
前提条件
CLBインスタンスが作成されました。 詳細については、「SLB インスタンスの作成」をご参照ください。
手順1: HTTPSリスナーの追加
CLBコンソールにログインします。
上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
次のいずれかの方法を使用して、リスナー構成ウィザードを開きます。
[インスタンス] ページで、管理するCLBインスタンスを見つけ、[操作] 列の [リスナーの設定] をクリックします。
[インスタンス] ページで、管理するCLBインスタンスのIDをクリックします。 [リスナー] タブで、[リスナーの追加] をクリックします。
プロトコル&リスナーステップで、以下のパラメータを設定し、次へをクリックします。
パラメーター
説明
リスナープロトコル
リスナープロトコルを選択します。
この例では、HTTPSが選択されています。
バックエンドプロトコル
この例では、HTTPSリスナーが使用されています。 バックエンドプロトコルはHTTPに設定されます。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するリスナーポートを指定します。 有効な値: -1 から 65535
リスナー名
リスナーの名前を入力します。
タグ
タグキーとタグ値を選択または入力します。
詳細設定
[変更] をクリックして詳細設定を設定します。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。
重み付きラウンドロビン (WRR): 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受け取ります。
ラウンドロビン (RR): リクエストはバックエンドサーバーに順番に配信されます。
セッション永続性
セッション維持を有効にするかどうかを指定します。
セッション維持が有効になると、CLBは同じクライアントからのすべてのリクエストを同じバックエンドサーバーに転送します。
クッキーオプション:
Cookieの挿入: このオプションを選択した場合、cookieのタイムアウト期間のみを指定する必要があります。
CLBは、クライアントに送信される最初のHTTPまたはHTTPS応答にcookie (SERVERID) を挿入します。 クライアントからの次のリクエストにはcookieが含まれており、リスナーはリクエストを記録されたバックエンドサーバーに転送します。
セッション永続化タイムアウト期間: [Cookieの挿入] を選択した場合、セッション永続化のタイムアウト期間を指定します。
Cookieの書き換え: このオプションを選択すると、HTTPまたはHTTPS応答に挿入するcookieを指定できます。 この場合、バックエンドサーバーのcookieのタイムアウト期間と有効期間を指定する必要があります。
cookieを指定すると、CLBは元のcookieを指定されたcookieで上書きします。 次回CLBが指定されたcookieを含むクライアント要求を受信すると、リスナーはその要求を記録されたバックエンドサーバーに配信します。
Cookie名: Cookieの書き換えを選択した場合、cookieの名前を指定する必要があります。
HTTP/2の有効化
CLBインスタンスのHTTP/2を有効にするかどうかを指定します。
アクセス制御
アクセス制御を有効にするかどうかを指定します。
アクセス制御を有効にした後、アクセス制御方法を選択します。 次に、リスナーのホワイトリストまたはブラックリストとしてアクセス制御リスト (ACL) を選択します。
ホワイトリスト: 特定のIPアドレスからのアクセスを許可します。 ネットワークACLで指定されたIPアドレスまたはCIDRブロックからのリクエストのみが転送されます。 ホワイトリストは、特定のIPアドレスからのアクセスのみを許可するシナリオに適用されます。 ホワイトリストが適切に構成されていないと、サービスに悪影響を及ぼす可能性があります。 ホワイトリストが設定されると、ホワイトリストに追加されたIPアドレスからのリクエストのみがリスナーによって転送されます。
ホワイトリストが設定されているが、IPアドレスがホワイトリストに追加されていない場合、リスナーはすべてのリクエストを転送します。
ブラックリスト: 特定のIPアドレスからのアクセスを拒否します。 ネットワークACLで指定されたIPアドレスまたはCIDRブロックからの要求は拒否されます。 ブラックリストは、特定のIPアドレスからのアクセスを拒否するシナリオに適用されます。
ブラックリストが設定されているが、IPアドレスがブラックリストに追加されていない場合、リスナーはすべてのリクエストを転送します。
説明IPv6インスタンスはIPv6 ACLにのみ関連付けることができ、IPv4インスタンスはIPv4 ACLにのみ関連付けることができます。 詳細については、「ACLの作成」をご参照ください。
リスナーの帯域幅スロットリング
リスナーの帯域制限を設定するかどうかを指定します。
帯域幅課金CLBインスタンスを使用する場合、各リスナーに最大帯域幅を設定して、リスナーによって転送されるネットワークトラフィックの量を制限できます。 CLBインスタンスに追加されたすべてのリスナーの最大帯域幅の合計は、CLBインスタンスの最大帯域幅を超えることはできません。 デフォルトでは、この機能は無効になっており、すべてのリスナーがCLBインスタンスの帯域幅を共有します。
重要たとえば、インターネット接続CLBインスタンスの最大帯域幅は5 Mbit/sで、2つのリスナーを設定したとします。 5 Mbit/sの帯域幅をリスナーAに割り当て、リスナーBには帯域幅を割り当てません。この場合、リスナーBにはアクセスできません。 帯域幅を割り当てるときは注意してください。
内部接続CLBインスタンスに3つのリスナーが設定されており、リスナーAとリスナーBに割り当てられている合計帯域幅が5,120 Mbit/sの場合、リスナーCにアクセスできません。 帯域幅を割り当てるときは注意してください。
データ転送課金CLBインスタンスを使用する場合、リスナーの帯域幅はデフォルトで無制限です。
アイドル接続タイムアウト期間
アイドル接続のタイムアウト時間を指定します。
指定されたタイムアウト期間内にリクエストが受信されない場合、CLBは接続を閉じます。 要求が受信されると、CLBは新しい接続を確立する。
接続要求タイムアウト
リクエストのタイムアウト時間を指定します。
リクエストタイムアウト期間内にバックエンドサーバーから応答が受信されない場合、CLBはHTTP 504エラーコードをクライアントに返します。
GZIP圧縮
GZIP圧縮を有効にすると、特定のタイプのファイルが圧縮されます。 GZIP圧縮を無効にすると、ファイルは圧縮されません。
GZIPは、
text/xml
、text/plain
、text/css
、application/javascript
、application/x-javascript
、application/rss + xml
、application/atom + xml
、application/xml
のファイルタイプをサポートしています。カスタムHTTPヘッダー
追加するHTTPヘッダーを選択します。 有効な値:
X-Forwarded-For: Retrieve Client IP
: クライアントIPアドレスを取得します。説明デフォルトでは、CLBのレイヤー7リスナーはX-Forwarded-Forを使用してクライアントIPアドレスを保持します。 このヘッダーは無効にできません。
SLB-ID: SLB IDの取得
: CLBインスタンスのIDを取得します。SLB-IP: SLB IPを取得
: CLBインスタンスのIPアドレスを取得します。X-Forwarded-Proto: Retrieve Listener Protocol
: リスナープロトコルを取得します。
クライアントIPアドレスの保存
クライアントIPアドレスを取得するかどうかを指定します。 デフォルトでは、この機能は有効になっています。
リスナーの自動有効化
作成後すぐにリスナーを有効にするかどうかを指定します。 デフォルトでは、リスナーは作成後に有効になります。
ステップ2: SSL証明書の設定
証明書の説明
HTTPSリスナーを追加するには、サーバー証明書または認証局 (CA) 証明書をアップロードし、TLSセキュリティポリシーを選択する必要があります。 次の表に、サーバー証明書とCA証明書の違いを示します。
証明書 | 説明 | 一方向認証に必要 | 相互認証に必要 |
サーバー証明書 | サーバー証明書は、サーバーのIDを認証するために使用されます。 ブラウザはサーバー証明書を使用して、サーバーから送信された証明書が信頼できるCAによって署名および発行されているかどうかを確認します。 詳細については、「SSL証明書とは 」をご参照ください。 | 課金されます サーバー証明書をCLBの証明書管理システムにアップロードする必要があります。 | 課金されます サーバー証明書をCLBの証明書管理システムにアップロードする必要があります。 |
CA証明書 | 証明書は、クライアント証明書の署名を認証するために使用されます。 署名が認証に失敗した場合、接続要求は拒否されます。 説明 クライアント証明書は、クライアントがサーバーと通信するときにクライアントのIDを認証するために使用されます。 クライアントにのみクライアント証明書をインストールする必要があります。 | 継続しない | 課金されます CA証明書をCLBの証明書管理システムにアップロードする必要があります。 |
使用上の注意
証明書をアップロードする前に、次のルールに注意してください。
CLBは、RSA 1024、RSA 2048、RSA 4096、ECDSA P-256、ECDSA P-384、およびECDSA P-521の公開鍵アルゴリズムをサポートしています。
アップロードする証明書はPEM形式である必要があります。
CLBに証明書をアップロードすると、CLBは証明書を管理できます。 証明書をバックエンドサーバーに関連付ける必要はありません。
証明書のアップロード、読み込み、検証に数分かかる場合があります。 したがって、HTTPSリスナーは作成後すぐには使用できません。 HTTPSリスナーを有効にするには、約1〜3分かかります。
HTTPSリスナーで使用されるElliptic-curve Diffie-Hellman Ephemeral (ECDH) スイートは、前方秘密をサポートしています。 DHEが必要とするセキュリティ強化パラメータファイルをアップロードすることはできません。 つまり、
BEGIN DH PARAMETERS
文字列を含むPEMファイルはサポートされていません。 詳細については、「証明書の要件」をご参照ください。デフォルトでは、HTTPSリスナーのセッションチケットのタイムアウト期間は300秒です。
データの一部がハンドシェークに使用されるため、HTTPSリスナーでの実際のデータ転送量は請求額よりも大きくなります。
したがって、多数のコネクションが確立されると、データ転送量が大幅に増加する。
手順
[証明書管理サービス] ステップで、アップロードしたサーバー証明書を選択するか、[サーバー証明書の作成] をクリックしてサーバー証明書をアップロードします。 証明書を購入することもできます。
オプション: [詳細設定] の横にある [変更] をクリックして、相互認証を有効にするか、TLSセキュリティポリシーを設定します。
相互認証をオンにし、アップロードされたCA証明書を選択するか、CA証明書を作成します。 詳細については、「プライベートCAの購入と有効化」をご参照ください。
TLSセキュリティポリシーパラメーターを設定します。 詳細については、「TLSセキュリティポリシー」をご参照ください。
説明TLSセキュリティポリシーは、高性能CLBインスタンスでのみサポートされます。
TLSセキュリティポリシーには、HTTPSで使用できるTLSプロトコルバージョンと暗号スイートが含まれています。 詳細については、「TLSセキュリティポリシー」をご参照ください。
ステップ3: バックエンドサーバーの追加
クライアント要求を処理するには、リスナーにバックエンドサーバーを追加する必要があります。 CLBインスタンスに設定されているデフォルトのサーバーグループを使用できます。 vServerグループを作成することもできます。 詳細については、「バックエンドサーバーの概要」をご参照ください。
この例では、バックエンドサーバーがデフォルトのサーバーグループに追加されます。
バックエンドサーバーステップで、選択デフォルトのサーバーグループをクリックし、さらに追加をクリックします。
サーバーパネルで、追加するバックエンドサーバーを選択し、次へをクリックします。
[重み] 列で、バックエンドサーバーの重みを設定します。
説明重みの高いECS (Elastic Compute Service) インスタンスは、より多くのリクエストを受け取ります。 デフォルトの重みは100です。 [リセット] をクリックすると、[重み] をデフォルト値に設定できます。
バックエンドサーバーの重みが0に設定されている場合、リクエストはバックエンドサーバーに配信されません。
[追加] をクリックします。 [既定のサーバーグループ] タブで、リクエストを受信するためにバックエンドサーバーで開くポートを指定します。 [次へ] をクリックします。
同じCLBインスタンスに追加されたバックエンドサーバーに同じポートを指定できます。
ステップ4: ヘルスチェックの設定
CLBはヘルスチェックを実行し、バックエンドECSインスタンスの可用性を確認します。 ヘルスチェック機能は、サービス全体の可用性を向上させ、バックエンドサーバーの障害の影響を軽減します。
オプション: [ヘルスチェック] ステップで、[変更] をクリックしてヘルスチェック設定を変更します。
詳細については、「ヘルスチェックの設定」をご参照ください。
クリック次へ.
ステップ5: 設定を送信する
確認ステップで、リスナーの設定を確認します。 [変更] をクリックして、設定を変更できます。
設定を確認し、送信をクリックします。
[設定の成功] メッセージで、OKをクリックします。
リスナーを設定した後、[リスナー] タブでリスナーを表示できます。
関連ドキュメント
HTTPSはHTTPよりも高いセキュリティをサポートしますが、コンピューティングリソースなどのより多くのリソースを消費し、ネットワーク遅延を増加させる可能性があります。 内部ネットワーク通信、ステージング環境、開発環境など、機密データを送信しないシナリオでは、HTTPリスナーを使用できます。 詳細については、「HTTPリスナーの追加」をご参照ください。 本番環境では、HTTPSを使用してデータ送信を暗号化することを推奨します。
バックエンドサーバーの詳細については、次のトピックを参照してください。
ヘルスチェックの詳細については、「ヘルスチェック概要」をご参照ください。 ヘルスチェックパラメーターの詳細については、「ヘルスチェックの設定」をご参照ください。
スケジューリングアルゴリズムの詳細については、「SLBスケジューリングアルゴリズム」をご参照ください。
HTTPSリスナーのURLベースまたはドメイン名ベースの転送ルールを作成する方法の詳細については、「ドメイン名または URL に基づくトラフィック転送」をご参照ください。
リクエストをHTTPからHTTPSにリダイレクトする方法の詳細については、「リクエストをHTTPからHTTPSにリダイレクトする」をご参照ください。
一方向認証の設定方法の詳細については、「HTTPS リスナーの追加 (一方向認証)」をご参照ください。
相互認証の設定方法の詳細については、「HTTPS リスナーの追加 (相互認証)」をご参照ください。
HTTPS経由で複数のドメイン名を提供するようにCLBインスタンスを設定する方法の詳細については、「SLB インスタンスに対する複数ドメイン名 HTTPS Web サイトの設定」をご参照ください。
バックエンドサーバーがHTTPSリスナーからクライアントIPアドレスを取得できるようにする方法の詳細については、「レイヤー7リスナーを有効にしてクライアントIPアドレスを保持する」をご参照ください。