自分のCAを持ち込んでmTLSを設定する
このページでは、Cloudflare CAによって発行されていないクライアント証明書を使用してmTLSを管理する方法を説明します。
これは、すでにmTLSが実装されていて、クライアント証明書がデバイスにインストールされている場合に特に便利です。
- 現在、アップロードしたCAをAPI経由でのみ管理でき、ホスト名の関連付けはダッシュボード ↗に反映されません。
- このプロセスはエンタープライズアカウントでのみ利用可能です。
- 各エンタープライズアカウントは最大5つのCAをアップロードできます。このクォータは、Cloudflare Accessを通じてアップロードされたCAには適用されません。
- The CA certificate can be from a publicly trusted CA or self-signed.
- In the certificate
Basic Constraints, the attributeCAmust be set toTRUE. - The certificate must use one of the signature algorithms listed below:
Allowed signature algorithms
x509.SHA1WithRSA
x509.SHA256WithRSA
x509.SHA384WithRSA
x509.SHA512WithRSA
x509.ECDSAWithSHA1
x509.ECDSAWithSHA256
x509.ECDSAWithSHA384
x509.ECDSAWithSHA512
- mTLS証明書アップロードエンドポイントを使用してCAルート証明書をアップロードします。
-
caboolean required- 証明書がCA証明書であることを示すために
trueに設定します。
- 証明書がCA証明書であることを示すために
-
certificatesstring required- CA証明書に関連付けられた
.pemファイルの内容を挿入し、改行を\nで置き換えた単一の文字列としてフォーマットします。
- CA証明書に関連付けられた
-
namestring optional- CA証明書の一意の名前を指定します。
- APIレスポンスで返される証明書ID(
id)をメモします。 - ホスト名の関連付けを置き換えるエンドポイントを使用して、mTLS検証にCAを使用する必要がある各ホスト名でmTLSを有効にします。次のパラメータを使用します。
-
hostnamesarray required-
クライアント証明書検証にCAを使用するホスト名をリストします。
-
-
mtls_certificate_idstring required-
前のステップで取得した証明書IDを示します。
-
-
(オプション)このプロセスはAPI専用であり、アップロードしたCA証明書を使用するホスト名はダッシュボードに表示されないため、
mtls_certificate_idをクエリパラメータとして使用してGETリクエストを行い、ホスト名の関連付けを確認できます。 -
クライアント証明書の検証を強制するカスタムルールを作成します。 これはダッシュボードまたはAPIを介して行うことができます。
"expression": "(http.host in {\"<HOSTNAME_1>\" \"<HOSTNAME_2>\"} and not cf.tls_client_auth.cert_verified)", "action": "block"以前にアップロードしたCAを削除したい場合は、最初にそのCAに関連付けられたホスト名の関連付けを削除する必要があります。
- ホスト名の関連付けを置き換えるエンドポイントにリクエストを行い、
hostnamesに空の配列を指定し、mtls_certificate_idにCA証明書IDを指定します:
"hostnames": [], "mtls_certificate_id": "<CERTIFICATE_ID>"- mTLS証明書削除エンドポイントを使用して証明書を削除します。