設定
mTLS認証でAPIホストを指定すると、CloudflareはmTLS認証のためのクライアント証明書を持たないすべてのリクエストをブロックします。
mTLSルールでAPIまたはWebアプリケーションを保護する前に、次のことを確認する必要があります。
- オリジンサーバーにインストールされた証明書が、クライアント証明書のホスト名(例:
api.example.com)と一致していることを確認します。オリジンサーバーのワイルドカード証明書(例:*.example.com)はサポートされていません。 - クライアント証明書を作成します。
- モバイルアプリまたはIoTデバイスを設定して、Cloudflareが発行したクライアント証明書を使用します。
- ゾーン内のホストに対してmTLSを有効にする必要があります。
- Log in to the Cloudflare dashboard ↗ and select your account and domain.
- Go to SSL/TLS > Client Certificates.
- Select Create a mTLS rule.
- In Custom rules, several rule parameters have already been filled in. Enter the URI path you want to protect in Value.
- (Optional) Add a
Hostnamefield and enter the mTLS-enabled hostnames you wish to protect in Value. - In Choose action, select
Block. - Select Deploy to make the rule active.
Once you have deployed your mTLS rule, any requests without a valid client certificate will be blocked.
式ビルダーでmTLSルールを確認するには、ルールに関連付けられたレンチアイコンを選択します。
式プレビューでは、mTLSルールには、and演算子で結合された2つの単純な式から形成された複合式が含まれています。
最初の式 — not cf.tls_client_auth.cert_verified — は、APIまたはWebアプリケーションへのリクエストが有効なクライアント証明書を提示しない場合にtrueを返します。
2番目の式は、http.request.uri.pathフィールドを使用し、in演算子と組み合わせて、mTLSルールが適用されるURIパスをキャプチャします。
ルールのアクションがブロックであるため、有効なクライアント証明書を提示するリクエストのみが指定されたホストにアクセスできます。
取り消されたクライアント証明書を確認するには、新しいmTLSルールを追加するか、デフォルトルールに新しい式を追加します。取り消された証明書を確認するには、式ビルダーを使用する必要があります。
リクエストに取り消された証明書が含まれている場合、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"})