IBM Cloud Docs
認証済み Origin Pull

認証済み Origin Pull

オリジンウェブサーバーは、認証されたオリジンプルを通して、ウェブ要求が IBM Cloud® Internet Services から来たことを検証します。 CIS は、 CIS とオリジンウェブサーバー間の接続を確立する際に、 CIS 証明書を提示するために、ほとんどのウェブサーバーでサポートされている機能である TLS クライアント証明書認証を使用します。 起点 Web サーバーでこの証明書を検証することにより、アクセスは CIS 接続に制限されます。

認証済み Origin Pull は、Web アプリケーション・ファイアウォール (WAF) を利用するときに重要になります。 オリジンウェブサーバーが認証されたオリジンのプルを実施した後、 CIS 以外のすべての HTTPS リクエストはオリジンに到達しないようにブロックされます。

認証されたオリジンのプルは、以下のオプションのいずれかを使用して構成される:

  • CIS 証明書を使用したゾーンレベルの認証済みオリジンのプル
  • 顧客証明書を使用したゾーンレベルの認証済みオリジンプル
  • 顧客証明書を使用したホスト名ごとの認証オリジンプル

削除要求または置換要求が CIS API に送信されない限り、クライアント証明書は期限切れになっても CIS から削除されません。 しかし、オリジンが有効なクライアント証明書しか受け入れない場合、リクエストはオリジンでドロップされる。

認証済み Origin Pull は、SSL モードが Off (非セキュア) または Client-to-Edge の場合は機能しません。

CIS 証明書を使用したゾーン・レベルの認証済み Origin Pull

CIS は、次の CA を使用して、認証済み Origin Pull サービスの証明書に署名します。

証明書をダウンロードし、起点 Web サーバー上 (例えば /path/to/origin-pull-ca.pem) にファイルを保管します。

認証されたオリジンを有効にするには、ゾーンをグローバルにプルします:

  1. オリジンのWebサーバーに証明書をインストールし、すべての接続を認証する。
  2. CIS を エンド・ツー・エンドで柔軟に 構成する。
  3. オリジンWebサーバーがクライアント証明書を受け入れるように設定します。
  4. CIS CLIを 使用して、認証されたオリジンのプルを有効にします。

顧客証明書を使用したゾーン・レベルの認証済みオリジン・プル

  1. OpenSSL, によって生成されたECC鍵を使用する場合は、まず証明書ファイルから -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- を削除する。

  2. CIS にアップロードする前に、証明書と鍵が以下の形式であることを確認してください:

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. 行の終わりをストリング \n に置き換えます。

    MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'| sed -e's/..$//')"
    
    echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/ 2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/ 3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
    
  4. ペイロードを作成します。

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. CIS CLI からクライアント証明書と秘密鍵をアップロードします。

  6. CIS CLIから 認証されたオリジンのプルを有効にします。

顧客証明書を使用したホスト名ごとの認証オリジンプル

ホスト名ごとの認証済みオリジンプルを有効にすると、指定したホスト名へのすべてのプロキシされたトラフィックがオリジンWebサーバーで認証されます。 独自の公開鍵インフラストラクチャーからのクライアント証明書を使用して、CIS からの接続を認証できます。

CIS 内にクライアント証明書をアップロードするには、以下のようにします。

  1. OpenSSL, によって生成されたECC鍵を使用する場合は、まず証明書ファイルから -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- を削除する。

  2. 証明書を CISにアップロードする前に、証明書が以下の形式であることを確認してください。

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. 行の終わりをストリング \n に置き換えます。

    MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'|sed -e's/..$//')"
    
    echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
    
  4. ペイロードを作成します。

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. CIS CLI からクライアント証明書と秘密鍵をアップロードします。

  6. CIS CLIを 使用して、指定したホスト名で認証されたオリジンのプルを有効にします。 クライアント証明書を特定のホスト名にリンクする。

ダウン時間なしのクライアント証明書の置き換え

ホスト名の場合:

  1. 新しい証明書をアップロードする。
  2. 新しい証明書の ID とホスト名、および有効な値をリンクする。

グローバルの場合:

  1. 新しい証明書をアップロードする。
  2. 新しい証明書がアクティブ状態であることを確認する。
  3. 証明書がアクティブになったら、古い証明書を削除する。

異なるクライアント証明書 (ゾーン・レベルとホスト名レベル) を同時に適用する

  1. ゾーンレベルの認証済みオリジンのプル」 セクションの手順に従って、証明書をアップロードします。
  2. 顧客証明書を使用したホスト名ごとの認証済みオリジンのプル 」セクションの手順に従って、複数の証明書をアップロードします。

Apache および NGINX へのインストール

以下の手順を使用して、NGINX 起点 Web サーバーまたは Apache 起点 Web サーバー用に TLS 認証済み Origin Pull を構成します。

Apache のセットアップ

End-to-End flexibleを使用し、以下の手順でオリジンWebサーバーのSSL設定を更新します。

  1. 認証済みオリジンプル証明書 origin-pull-ca.pem )をダウンロードします。

  2. 証明書をオリジンのウェブ・サーバー上のファイル、例えば /path/to/origin-pull-ca.pem に保存します。

  3. 起点 Web サーバーの SSL 構成に以下の行を追加します。

    SSLVerifyClient require
    SSLVerifyDepth 1
    SSLCACertificateFile /path/to/origin-pull-ca.pem
    

NGINX のセットアップ

End-to-End flexibleを使用し、以下の手順でオリジンWebサーバーのSSL設定を更新します。

  1. 認証済みオリジンプル証明書 origin-pull-ca.pem )をダウンロードします。

  2. 証明書をオリジンのウェブ・サーバー上のファイル、例えば /etc/nginx/certs/cloudflare.crt に保存します。

  3. 起点 Web サーバーの SSL 構成に以下の行を追加します。

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;