TCP/SSL リスナーを使用して暗号化通信を有効にするには、NLB で証明書を設定します。すべての NLB 証明書は、Alibaba Cloud Certificate Management Service が保存および管理します。NLB で使用する前に、証明書を購入するか、既存の証明書を Certificate Management Service にアップロードしてください。
仕組み
証明書の種類
-
CA 証明書:認証局 (CA) は、証明書を検証して発行する信頼された第三者です。CA 証明書は、証明書が信頼された CA によって発行されたかどうかなどをチェックすることで、他の証明書の正当性を検証します。
-
サーバー証明書:SSL 証明書とも呼ばれ、CA によって発行され、サーバーの公開鍵とアイデンティティ情報 (ドメイン名など) が含まれています。クライアントに対しサーバーのアイデンティティを証明します。
-
クライアント証明書:CA によって発行され、クライアントの公開鍵とアイデンティティ情報が含まれています。サーバーに対しクライアントのアイデンティティを証明します。
認証モード
NLB は、片方向認証と相互認証の両方をサポートしています。
-
片方向認証:NLB はサーバー証明書のみを必要とします。クライアントがサーバーのアイデンティティを検証します。これは最も一般的なモードであり、ほとんどの Web アプリケーションや API サービスに適しています。
-
相互認証:NLB はサーバー証明書と CA 証明書の両方を必要とします。サーバーとクライアントが相互に認証します。このモードは、金融、モノのインターネット (IoT)、企業内システムなど、高いセキュリティが求められるシナリオで使用されます。
|
片方向認証のハンドシェイクプロセス |
相互認証のハンドシェイクプロセス |
|
|
|
前提条件
認証モード (片方向または相互) に応じて、必要な証明書を準備します。Alibaba Cloud から証明書を購入するには、以下をご参照ください。
-
CA 証明書:プライベートCAの購入と有効化
-
サーバー証明書:商用証明書の購入
-
クライアント証明書:プライベート証明書のダウンロード
片方向認証の証明書設定
コンソール
TCP/SSL リスナーを設定する際、SSL 証明書の設定 ページでサーバー証明書を選択し、TLS セキュリティポリシー を設定します。
詳細な手順については、「NLBを使用したTCP/SSLのオフロード (片方向認証)」をご参照ください。
API
CreateListener API を呼び出します。
-
ListenerProtocolフィールドをTCPSSLに設定して、TCP/SSL リスナーを作成します。 -
CertificateIdsフィールドでサーバー証明書を設定します。 -
SecurityPolicyIdフィールドで TLS セキュリティポリシーを設定します。
相互認証の証明書設定
コンソール
TCP/SSL リスナーを設定する際、SSL 証明書の設定 ページでサーバー証明書を選択し、相互認証を有効にして CA 証明書を設定します。また、TLS セキュリティポリシー も設定します。
詳細な手順については、「NLBを使用したTCP/SSLのオフロード (相互認証)」をご参照ください。
API
CreateListener API を呼び出します。
-
ListenerProtocolフィールドをTCPSSLに設定して、TCP/SSL リスナーを作成します。 -
CertificateIdsフィールドでサーバー証明書を設定します。 -
CaEnabledフィールドをtrueに設定して、相互認証を有効にします。 -
CaCertificateIdsフィールドで CA 証明書を設定します。 -
SecurityPolicyIdフィールドで TLS セキュリティポリシーを設定します。
片方向認証と相互認証の切り替え
既存の TCP/SSL リスナーでは、相互認証を有効または無効にすることで、片方向認証と相互認証を切り替えることができます。
コンソール
-
NLB コンソール で、対象の NLB インスタンスを見つけ、そのインスタンス ID をクリックします。
-
リスナー タブで、対象の TCP/SSL リスナーを見つけ、操作 → 証明書の管理 をクリックします。
-
CA 証明書 タブの左上隅にある 相互認証 スイッチを切り替えて、相互認証を有効または無効にします。CA 証明書を選択し、OK をクリックします。
API
UpdateListenerAttribute API を呼び出します。ListenerId フィールドで対象の TCP/SSL リスナーを選択します。CaEnabled フィールドを設定して相互認証を有効または無効にします。CaCertificateIds フィールドを更新して CA 証明書を選択します。
サーバー証明書の管理
デフォルトサーバー証明書の置換
TCP/SSL リスナーの設定時に選択したサーバー証明書は、リスナーのデフォルトサーバー証明書になります。証明書の有効期限が近づいた場合や、ビジネス要件が変更になった場合に、シームレスに置換できます。
デフォルトサーバー証明書の更新中、新しい接続が中断される可能性があります。既存の接続は影響を受けません。この変更は、オフピーク時間帯に実行してください。
コンソール
-
NLB コンソール で、対象の NLB インスタンスを見つけ、そのインスタンス ID をクリックします。
-
リスナー タブで、対象の TCP/SSL リスナーを見つけ、操作 → 証明書の管理 をクリックします。
-
サーバー証明書 タブで、デフォルトのサーバー証明書 → 変更 をクリックし、新しい証明書を選択します。
-
OK をクリックします。
API
UpdateListenerAttribute API を呼び出します。ListenerId フィールドで対象の TCP/SSL リスナーを選択します。CertificateIds フィールドを更新して、デフォルトサーバー証明書を置換します。
複数ドメイン用拡張証明書の設定
単一のリスニングポートで、それぞれ独自の証明書を持つ複数のドメインの HTTPS トラフィックを処理する必要がある場合は、NLB の拡張証明書機能を使用します。
設定後、NLB はクライアントのリクエストに含まれるドメインに基づいて、適切な証明書を自動的に選択します。
-
リクエストされたドメインが拡張証明書と一致する場合、NLB はその証明書を使用します。
-
一致するものが見つからない場合、NLB はデフォルトサーバー証明書を使用します。
1. 各 NLB インスタンスは、最大 25 個の拡張証明書をサポートします。
2. 1 回の操作で最大 15 個の拡張証明書を追加または削除できます。
コンソール
-
NLB コンソール で、対象の NLB インスタンスを見つけ、そのインスタンス ID をクリックします。
-
リスナー タブで、対象の TCP/SSL リスナーを見つけ、操作 → 証明書の管理 をクリックします。
-
サーバー証明書 タブで、新たな証明書の追加 をクリックし、追加ドメイン用の証明書を選択します。
-
OK をクリックします。
拡張証明書を削除するには、証明書の横にある 操作 → 削除 をクリックします。
API
-
AssociateAdditionalCertificatesWithListener API を呼び出します。
ListenerIdフィールドで対象の TCP/SSL リスナーを選択します。AdditionalCertificateIdsフィールドで拡張証明書を追加します。 -
DisassociateAdditionalCertificatesWithListener API を呼び出します。
ListenerIdフィールドで対象の TCP/SSL リスナーを選択します。AdditionalCertificateIdsフィールドで拡張証明書を削除します。
CA 証明書の管理
CA 証明書の置換
コンソール
-
NLB コンソール で、対象の NLB インスタンスを見つけ、そのインスタンス ID をクリックします。
-
リスナー タブで、対象の TCP/SSL リスナーを見つけ、操作 → 証明書の管理 をクリックします。
-
CA 証明書 タブで、相互認証が有効になっている場合、CA 証明書の横にある 操作 → 変更 をクリックします。新しい CA 証明書を選択し、OK をクリックします。
API
UpdateListenerAttribute API を呼び出します。ListenerId フィールドで対象の TCP/SSL リスナーを選択します。CaCertificateIds フィールドを更新して CA 証明書を置換します。
料金詳細
TCP/SSL リスナーで証明書機能を使用しても、追加料金は発生しません。ただし、証明書自体には料金がかかります。詳細については、「SSL証明書の料金詳細」、「PCA証明書の料金詳細」をご参照ください。
本番運用
-
ベストプラクティス
-
証明書管理:Alibaba Cloud Certificate Management Service で、すべての証明書を一元管理します。これにより、表示、更新、デプロイが簡素化されます。
-
TLS ポリシー:特別な互換性要件のない一般公開アプリケーションには、
tls_cipher_policy_1_2以上を使用します。 -
自動化:API または Terraform を Certificate Management Service と組み合わせて、証明書の更新とデプロイを自動化します。これにより、証明書の有効期限切れによるサービスの中断を防ぎます。
-
-
リスク軽減とフォールトトレランス
-
内部トラフィックのセキュリティ:クライアントと NLB 間のトラフィックは TCP/SSL で暗号化されますが、NLB とバックエンドサーバー間のトラフィックはデフォルトではプレーンテキストです。エンドツーエンドのセキュリティを確保するには、NLB とバックエンドサーバーを同じ VPC にデプロイし、セキュリティグループでアクセスを厳密に制限します。
-
証明書の有効期限監視:Cloud Monitor で証明書の有効期限アラートルールを設定します。有効期限の 30 日前、7 日前、1 日前にアラートを設定し、交換に十分な時間を確保します。
-
ロールバック:証明書の置換や TLS ポリシーの変更後に問題が発生した場合は、リスナー設定を更新して直ちにロールバックしてください。変更はオフピーク時間帯に実行してください。
-