コンテンツにスキップ

クライアント証明書

クライアント証明書デバイスポスチャ属性は、デバイスが信頼された証明書機関(CA)によって署名された有効な証明書を持っているかどうかを確認します。このポスチャチェックは、ユーザーが管理されたデバイスから接続していることを確認するために、ゲートウェイおよびアクセスポリシーで使用できます。

機能の可用性

WARPモードゼロトラストプラン
すべてのモードすべてのプラン
システム可用性最小WARPバージョン1
Windows2024.6.415.0
macOS2024.6.416.0
Linux2024.6.497.0
iOS
Android
ChromeOS

1 以前のWARPバージョンで実行されたクライアント証明書チェックは引き続き機能します。新しい証明書チェックを構成するには、上記のバージョンにWARPを更新してください。

前提条件

  • デバイス用のクライアント証明書を発行するCA。WARPは証明書の信頼チェーンを評価しません。これが発行証明書である必要があります。
  • Cloudflare WARPクライアントがデプロイ済みであること。
  • クライアント証明書がインストールされ、信頼されていること。

クライアント証明書チェックの構成

  1. Use the Upload mTLS certificate endpoint to upload the certificate and private key to Cloudflare. The certificate must be a root CA, formatted as a single string with \n replacing the line breaks. プライベートキーは、ゲートウェイHTTPS検査のためにこのカスタム証明書を使用する場合にのみ必要です。

    Terminal window
    curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/mtls_certificates" \
    --header "X-Auth-Email: <EMAIL>" \
    --header "X-Auth-Key: <API_KEY>" \
    --header "Content-Type: application/json" \
    --data '{
    "name": "example_ca_cert",
    "certificates": "-----BEGIN CERTIFICATE-----\nXXXXX\n-----END CERTIFICATE-----",
    "private_key": "-----BEGIN PRIVATE KEY-----\nXXXXX\n-----END PRIVATE KEY-----",
    "ca": true
    }'

    The response will return a UUID for the certificate:

    {
    "success": true,
    "errors": [],
    "messages": [],
    "result": {
    "id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60",
    "name": "example_ca_cert",
    "issuer": "O=Example Inc.,L=California,ST=San Francisco,C=US",
    "signature": "SHA256WithRSA"
    ...
    }
    }
  2. ゼロトラストに移動し、設定 > WARPクライアントを選択します。

  3. WARPクライアントチェックまでスクロールし、新規追加を選択します。

  4. クライアント証明書を選択します。

  5. 次の情報を入力するように求められます:

    1. 名前:このデバイスポスチャチェックのための一意の名前を入力します。
    2. オペレーティングシステム:オペレーティングシステムを選択します。
    3. OSの場所:クライアント証明書がインストールされている場所を指定します。

      Windows

      • ローカルマシントラストストア - ユーザートラストストア

      macOS

      - システムキーチェーン

      Linux

      • NSSDB (/etc/pki/nssdb) - カスタム場所を検索するには、証明書とプライベートキーへの絶対ファイルパスを入力します(例:/usr/local/mycompany/certs/client.pemおよび/usr/local/mycompany/certs/client_key.pem)。証明書とプライベートキーはPEM形式でなければなりません。2つの異なるファイルまたは同じファイルにすることができます。
    4. 証明書ID:ルートCAのUUIDを入力します。
    5. コモンネーム:(オプション)クライアント証明書の特定のコモンネームをチェックするには、オプションの${serial_number}および${hostname}変数を含む文字列を入力します(例:${serial_number}_mycompany)。WARPは大文字と小文字を区別せずに完全一致を検索します。コモンネームを指定しない場合、WARPは証明書のコモンネームフィールドを無視します。
    6. 拡張キー使用のチェック:(オプション)クライアント証明書に1つ以上の属性が設定されているかどうかを確認します。サポートされている値はクライアント認証1.3.6.1.5.5.7.3.2)および/またはメール1.3.6.1.5.5.7.3.4)です。
    7. プライベートキーのチェック:(推奨)有効にすると、WARPはデバイスがクライアント証明書に関連付けられたプライベートキーを持っているかどうかを確認します。
  6. 保存を選択します。

次に、ログ > ポスチャに移動し、クライアント証明書チェックが期待される結果を返していることを確認します。

トラブルシューティング

クライアント証明書がデバイスに正しくインストールされ、信頼されているかどうかを確認するには、次のコマンドを使用できます。

  1. PowerShellウィンドウを開きます。
  2. 特定のコモンネームを持つ証明書をローカルマシントラストストアで検索するには、次のコマンドを実行します:
Terminal window
PS C:\Users\JohnDoe> Get-ChildItem Cert:\LocalMachine\My\ | where{$_.Subject -like "*<COMMON_NAME>*"}
  1. 特定のコモンネームを持つ証明書をユーザートラストストアで検索するには、次のコマンドを実行します:
Terminal window
PS C:\Users\JohnDoe> Get-ChildItem Cert:\CurrentUser\My\ | where{$_.Subject -like "*<COMMON_NAME>*"}

ポスチャチェックが合格するためには、アップロードされたルートCAに対して検証される証明書が出力に表示される必要があります。