片方向認証または相互認証(mTLS)を設定する場合、Alibaba Cloud Certificate Management Service から証明書を購入するか、第三者製のサーバー証明書および CA 証明書をアップロードする必要があります。その後、これらの証明書をリスナーに関連付けます。
背景情報
ALB は片方向認証および相互認証(mTLS)をサポートしています。ご要件に最も適した認証方式を選択してください。
片方向認証:クライアントがサーバーを認証しますが、サーバーはクライアントを認証しません。HTTPS または QUIC リスナーを設定する場合、リスナーにサーバー証明書を関連付ける必要があります。
相互認証(mTLS):クライアントとサーバーが互いに認証を行います。両者が認証された後のみリクエストおよび応答が送信されるため、通信の安全性が確保されます。mTLS を有効化するには、リスナーにサーバー証明書および CA 証明書の両方を関連付ける必要があります。CA 証明書はクライアントの認証に使用されます。
制限事項
Basic Edition の ALB インスタンスでは相互認証(mTLS)はサポートされていません。
QUIC リスナーでは相互認証(mTLS)はサポートされていません。
HTTP リスナーでは片方向認証および相互認証(mTLS)はサポートされていません。
証明書の種類
ALB では、国際標準証明書(RSA/ECC)および SM 証明書(SM2)の両方をサポートしています。
国際標準証明書:RSA および ECC アルゴリズムをサポートし、一般的な HTTPS 暗号化に適しています。
SM 証明書:中国暗号アルゴリズムスイート(署名および鍵交換に SM2、ハッシュ化に SM3、データ暗号化に SM4)をサポートしています。MLPS 2.0 Level 3 のコンプライアンスが求められる金融・政府機関などの業界向けです。SM 証明書を使用するには、
ECC-SM2-WITH-SM4-SM3暗号スイートを含むカスタム TLS セキュリティポリシーを選択する必要があります。
SM 証明書機能はデフォルトで有効化されていません。この機能を利用するには、クォータセンターで必要なクォータを申請する必要があります。
SM 証明書は、レガシ ALB インスタンスではなくアップグレード済み ALB インスタンスでのみサポートされています。ALB インスタンスのクローン作成ALB インスタンスのクローン作成を活用して、レガシ ALB インスタンスからアップグレード済み ALB インスタンスへサービスを手動で移行できます。
SM 証明書は、Standard Edition および WAF 対応 Edition の ALB インスタンスのみでサポートされています。Basic Edition および Extended Edition のインスタンスではサポートされていません。
CA 証明書が SM2 アルゴリズムをサポートしないため、SM 証明書では相互認証(mTLS)はサポートされていません。
以下の表では、サポートされているリスナータイプ、証明書の種類、および認証方式について説明します。
リスナータイプ | 証明書の種類 | 認証方式 | |
片方向認証 | 相互認証(mTLS) | ||
HTTPS | 単一 RSA、ECC、または SM2 証明書 | 対応 | 対応(RSA、ECC) |
デュアル RSA および ECC 証明書 | 対応 | 対応 | |
RSA および SM2 証明書 | 対応 | 非対応 | |
ECC および SM2 のデュアル証明書 | 対応 | 非対応 | |
混合 RSA、ECC、SM2 証明書 | 対応 | 非対応 | |
QUIC | 単一 RSA または ECC 証明書 | 対応 | 非対応 |
RSA および ECC のデュアル証明書 | 対応 | 非対応 | |
HTTP | 証明書の設定はサポートされていません | ||
証明書のマッチングロジック
リスナーに複数の証明書が設定されている場合、ALB は Server Name Indication(SNI)をサポートするインテリジェントな証明書選択アルゴリズムを使用します。クライアントのホスト名がリスト内の単一証明書と一致する場合は、ALB がその証明書を選択します。ホスト名が複数の証明書と一致する場合は、以下の優先度に基づいて最適な証明書が選択されます。
ドメイン名の一致:ワイルドカード一致よりも完全一致が優先されます。
公開鍵アルゴリズム:ECDSA(ECC)が RSA よりも優先されます。
ハッシュアルゴリズム:SHA ファミリーが MD5 よりも優先されます。
鍵長:最も長い鍵を持つ証明書が優先されます。
有効期間:残存有効期間が最も長い証明書が優先されます。
ALB はクライアントの TLS ハンドシェイクにおけるプロトコルバージョンを用いて、中国国家暗号プロトコル(TLCP)を使用するかどうかを判断します。
クライアントが TLCP プロトコルを使用する場合、ALB は SM 証明書を優先します。
クライアントが標準 TLS プロトコルを使用する場合、ALB は国際標準証明書(RSA/ECC)を優先します。
前提条件
標準エディションまたは WAF 有効化エディションの ALB インスタンスの作成が完了していること。
Certificate Management Service で証明書を購入済みまたはサーバー証明書をアップロード済みである必要があります。
相互認証を行う場合、CA 証明書も必要です。Certificate Management Service でサブ CA 証明書を購入・有効化済み(証明書クォータの確保が必要)または自己署名ルート CA またはサブ CA 証明書をアップロード済みである必要があります。
証明書の追加
ALB コンソールにログインします。ALB コンソール。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、ターゲットインスタンスを見つけ、その ID をクリックします。
リスナー構成ウィザードを開きます:
「インスタンス」ページで、ターゲットインスタンスを見つけ、「リスナーの作成」を「操作」列でクリックします。
[インスタンス] ページで、ターゲットインスタンス ID をクリックします。[リスナー] タブで、[リスナーの作成] をクリックします。
[リスナーの設定] ページで、以下の設定を構成し、[次へ] をクリックします。
本トピックでは必須パラメーターのみを説明します。詳細については、「HTTPS リスナーの追加」をご参照ください。
リスナーの設定
説明
リスナープロトコルの選択
リスナープロトコルを選択します。HTTPS または QUIC を選択できます。
説明QUIC リスナーでは相互認証(mTLS)はサポートされていません。
HTTP リスナーでは片方向認証および相互認証(mTLS)はサポートされていません。
本例では、HTTPS を選択します。
リスナーポート
1 ~ 65535 のポート番号を指定して、リクエストを受信しバックエンドサーバーに転送します。HTTP の標準ポートは 80、HTTPS の標準ポートは 443 です。
本例では、443 を入力します。
リスナー名
リスナーのカスタム名を入力します。
高度な設定
詳細設定を展開するには、変更 をクリックします。
[SSL 証明書の設定] ステップで、サーバー証明書を選択します。
オプション: 相互認証の有効化 を有効にし、CA 証明書のソースを選択します。
CA 証明書のソースとして [Alibaba Cloud] を選択し、[デフォルトの CA 証明書] ドロップダウンリストから CA 証明書を選択します。
CA 証明書が利用できない場合は、ドロップダウンリストから [CA 証明書の購入] をクリックして、新しい CA 証明書を作成できます。
CA 証明書のソースとして [サードバーティ] を選択し、[デフォルトの CA 証明書] ドロップダウンリストから CA 証明書を選択します。
自己署名 CA 証明書が利用できない場合は、ドロップダウンリストから [自己署名 CA 証明書のアップロード] をクリックします。[証明書アプリケーションリポジトリ] ページで、データソースとして [CA 証明書のアップロード] を指定したリポジトリを作成します。その後、自己署名ルート CA または自己署名中間 CA 証明書をリポジトリにアップロードします。
説明相互認証は Standard Edition および WAF 対応 Edition の ALB インスタンスのみでサポートされています。Basic Edition の ALB インスタンスではサポートされていません。
相互認証を有効化した後、後から無効化する必要がある場合は、以下の手順に従ってください:
インスタンス ページで、ターゲットインスタンスの ID をクリックします。
[リスナー] タブで、対象の HTTPS リスナー ID をクリックします。
[リスナーの詳細] タブの [SSL 証明書] セクションで、相互認証スイッチをオフにします。
[TLS セキュリティポリシー] を選択し、[次へ] をクリックします。
TLS セキュリティポリシーが利用できない場合は、ドロップダウンリストから [TLS セキュリティポリシーの作成] をクリックします。
TLS セキュリティポリシー には、HTTPS でサポートされる TLS プロトコルバージョンおよび暗号スイートが含まれます。
サーバーグループの選択 ページで、バックエンドサーバーグループを選択し、バックエンドサーバー情報を表示して、次へ をクリックします。
「設定の確認」ページで設定を確認し、送信 をクリックします。
その他の操作
ALB コンソールにログインします。ALB コンソール。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、ターゲットインスタンスを見つけ、その ID をクリックします。
[リスナー] タブをクリックします。対象のリスナーを見つけ、[操作] 列の [証明書の管理] をクリックします。
[証明書] ページで、以下の操作を実行できます。
説明サービス障害を回避するため、証明書の有効期限が切れる前に置き換えてください。
証明書のカテゴリ
操作
説明
サーバー証明書
デフォルトサーバー証明書の置き換え
追加サーバー証明書の追加
リスナーに追加証明書を追加できます。
追加サーバー証明書の削除
追加サーバー証明書を削除できます。削除後は、認証に使用できなくなります。
[サーバー証明書] タブで、対象の追加証明書を検索し、[削除] を [操作] 列でクリックします。
表示されるダイアログボックスで、[削除] をクリックします。
CA 証明書
相互認証の有効化/無効化
相互認証の有効化:リスナーでまだ相互認証が有効化されていない場合、以下の手順で有効化できます。
[CA 証明書] タブをクリックし、[相互認証] スイッチをオンにするか、[相互認証を有効化] をクリックします。
[相互認証を有効化] ダイアログボックスで、以下のいずれかの操作を行います:
CA 証明書のソースを [Alibaba Cloud] に設定し、[デフォルトの CA 証明書] ドロップダウンリストから CA 証明書を選択し、[OK] をクリックします。
CA 証明書が利用できない場合は、ドロップダウンリストから [CA 証明書の購入] をクリックして、新しい CA 証明書を作成できます。
CA 証明書のソースを [サードバーティ] に設定し、[デフォルトの CA 証明書] ドロップダウンリストから CA 証明書を選択し、[OK] をクリックします。
自己署名 CA 証明書が利用できない場合は、ドロップダウンリストから [自己署名 CA 証明書のアップロード] をクリックします。[証明書アプリケーションリポジトリ] ページで、データソースとして [CA 証明書のアップロード] を指定したリポジトリを作成します。その後、自己署名ルート CA または自己署名中間 CA 証明書をリポジトリにアップロードします。
相互認証の無効化:リスナーで相互認証が有効化されている場合、[CA 証明書] タブをクリックし、[相互認証] スイッチをオフにすることで、片方向認証に戻すことができます。
CA 証明書の置き換え
[CA 証明書] タブをクリックします。デフォルトの CA 証明書を見つけ、[変更] を [操作] 列でクリックします。
[デフォルトの CA 証明書を変更] ダイアログボックスで、ビジネス要件に応じて以下のいずれかの操作を行います:
CA 証明書のソースを [Alibaba Cloud] に設定し、[デフォルトの CA 証明書] ドロップダウンリストから CA 証明書を選択し、[OK] をクリックします。
CA 証明書が利用できない場合は、ドロップダウンリストから [CA 証明書の購入] をクリックして、新しい CA 証明書を作成できます。
CA 証明書のソースを [サードバーティ] に設定し、[デフォルトの CA 証明書] ドロップダウンリストから CA 証明書を選択し、[OK] をクリックします。
自己署名 CA 証明書が利用できない場合は、ドロップダウンリストから [自己署名 CA 証明書のアップロード] をクリックします。[証明書アプリケーションリポジトリ] ページで、データソースとして [CA 証明書のアップロード] を指定したリポジトリを作成します。その後、自己署名ルート CA または自己署名中間 CA 証明書をリポジトリにアップロードします。
参考文献
チュートリアル
エンドツーエンドの HTTPS を設定して通信を保護する:ALB はエンドツーエンドの HTTPS 暗号化を提供しており、クライアントから ALB および ALB からバックエンドサーバーまでのトラフィックを保護します。これにより、機密性の高いサービスのセキュリティが強化されます。
単一の ALB インスタンスを用いてマルチドメイン HTTPS ウェブサイトを設定する:異なるドメイン名の HTTPS リクエストを異なるバックエンドサーバーに転送する必要がある場合、HTTPS リスナーに複数の証明書を関連付け、ドメインベースの転送ルールを設定できます。
相互認証を使用する HTTPS サービスを展開する:金融・医療などの高セキュリティ要件のあるシナリオでは、ALB の HTTPS 相互認証機能を活用して、クライアントおよびサーバー双方の ID を検証し、データ伝送のセキュリティを確保できます。
API リファレンス
CreateListener:HTTP、HTTPS、または QUIC リスナーを作成します。
AssociateAdditionalCertificatesWithListener:HTTPS または QUIC リスナーに追加証明書を関連付けます。
DissociateAdditionalCertificatesFromListener:HTTPS または QUIC リスナーから追加証明書を関連解除します。
UpdateListenerAttribute:HTTPS または QUIC リスナーのデフォルト証明書設定(デフォルト証明書の置き換えや相互認証の有効化/無効化など)を変更します。