コンテンツにスキップ

自分のCAを持ち込んでmTLSを設定する

このページでは、Cloudflare CAによって発行されていないクライアント証明書を使用してmTLSを管理する方法を説明します。

これは、すでにmTLSが実装されていて、クライアント証明書がデバイスにインストールされている場合に特に便利です。

利用可能性

  • 現在、アップロードしたCAをAPI経由でのみ管理でき、ホスト名の関連付けはダッシュボードに反映されません。
  • このプロセスはエンタープライズアカウントでのみ利用可能です。
  • 各エンタープライズアカウントは最大5つのCAをアップロードできます。このクォータは、Cloudflare Accessを通じてアップロードされたCAには適用されません。

CA証明書の要件

  • The CA certificate can be from a publicly trusted CA or self-signed.
  • In the certificate Basic Constraints, the attribute CA must be set to TRUE.
  • 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


自分のCAでmTLSを設定する

  1. mTLS証明書アップロードエンドポイントを使用してCAルート証明書をアップロードします。
  • ca boolean required

    • 証明書がCA証明書であることを示すためにtrueに設定します。
  • certificates string required

    • CA証明書に関連付けられた.pemファイルの内容を挿入し、改行を\nで置き換えた単一の文字列としてフォーマットします。
  • name string optional

    • CA証明書の一意の名前を指定します。
  1. APIレスポンスで返される証明書ID(id)をメモします。
  2. ホスト名の関連付けを置き換えるエンドポイントを使用して、mTLS検証にCAを使用する必要がある各ホスト名でmTLSを有効にします。次のパラメータを使用します。
  • hostnames array required

    • クライアント証明書検証にCAを使用するホスト名をリストします。

  • mtls_certificate_id string required

    • 前のステップで取得した証明書IDを示します。

  1. (オプション)このプロセスはAPI専用であり、アップロードしたCA証明書を使用するホスト名はダッシュボードに表示されないため、mtls_certificate_idをクエリパラメータとして使用してGETリクエストを行い、ホスト名の関連付けを確認できます。

  2. クライアント証明書の検証を強制するカスタムルールを作成します。 これはダッシュボードまたはAPIを介して行うことができます。

"expression": "(http.host in {\"<HOSTNAME_1>\" \"<HOSTNAME_2>\"} and not cf.tls_client_auth.cert_verified)",
"action": "block"

アップロードしたCAを削除する

以前にアップロードしたCAを削除したい場合は、最初にそのCAに関連付けられたホスト名の関連付けを削除する必要があります。

  1. ホスト名の関連付けを置き換えるエンドポイントにリクエストを行い、hostnamesに空の配列を指定し、mtls_certificate_idにCA証明書IDを指定します:
"hostnames": [],
"mtls_certificate_id": "<CERTIFICATE_ID>"
  1. mTLS証明書削除エンドポイントを使用して証明書を削除します。