Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

mTLS を設定する

最終更新 Markdown で表示Agent セットアップ

mTLS 認証 で API ホストを指定すると、mTLS 認証用の クライアント証明書 がないリクエストはすべて Cloudflare がブロックします。

前提条件

mTLS ルールで API または Web アプリケーションを保護する前に、次を完了してください。

Cloudflare ダッシュボードで mTLS ルールを作成する

  1. Cloudflare ダッシュボードで Client Certificates ページを開きます。

    Client Certificates を開く ↗
  2. Create a mTLS rule を選択します。

  3. Custom rules では、いくつかのルールパラメーターがすでに入力されています。保護する URI パスを Value に入力します。

  4. (任意)Hostname フィールドを追加し、保護する mTLS 有効なホスト名を Value に入力します。

  5. Choose actionBlock を選択します。

  6. Deploy を選択して、ルールを有効にします。

mTLS ルールをデプロイすると、有効なクライアント証明書 がないリクエストはブロックされます。

Expression Builder

Expression Builder で mTLS ルールを確認するには、ルールに対応する レンチアイコン を選択します。

Expression Preview では、mTLS ルールは and 演算子で結合した 2 つの 単純式 からなる 複合式 になります。

最初の式 not cf.tls_client_auth.cert_verified は、API または Web アプリケーションへのリクエストが有効なクライアント証明書を提示しないときに true を返します。

2 番目の式は、http.request.uri.path フィールドと in 演算子を組み合わせ、mTLS ルールの対象となる URI パスを指定します。

ルールの アクションBlock のため、有効なクライアント証明書を提示したリクエストだけが指定ホストにアクセスできます。

発行者の Subject Key Identifier(SKI)ハッシュも検証することを推奨します。このチェックがないと、どの認証局(CA)が発行したかに関係なく、有効なクライアント証明書はすべて受け入れられます。SKI ハッシュを追加すると、特定の CA が発行した証明書にアクセスを制限できます。

次のような式で実装できます。

not (cf.tls_client_auth.cert_verified and cf.tls_client_auth.cert_issuer_ski eq "A5AC554235DBA6D963B9CDE0185CFAD6E3F55E9F")

mtls.crt ファイルに保存したクライアント証明書の発行者 Subject Key Identifier(SKI)ハッシュを取得するには、次の OpenSSL コマンドを実行します。

openssl x509 -noout -ext authorityKeyIdentifier -in mtls.crt | tail -n1 | tr -d ': '
A5AC554235DBA6D963B9CDE0185CFAD6E3F55E9F

失効した証明書を確認する

失効したクライアント証明書 を確認するには、新しい mTLS ルールを追加するか、デフォルトルール に式を追加します。失効証明書の確認には Expression Builder が必要です。

リクエストに失効した証明書が含まれると、cf.tls_client_auth.cert_revoked フィールドは true になります。デフォルトの mTLS ルール と組み合わせると、次のようになります。

((not cf.tls_client_auth.cert_verified or cf.tls_client_auth.cert_revoked) and http.request.uri.path in {"/admin"})

役に立ちましたか?