カスタム証明書のデプロイ
Cloudflare証明書をインストールしたくないエンタープライズ顧客は、自分のルート証明書をCloudflareにアップロードするオプションがあります。この機能は、時折「Bring Your Own Public Key Infrastructure (BYOPKI)」と呼ばれます。Gatewayは、アップロードした証明書を使用してエンドユーザーとGateway間のすべてのセッションを暗号化し、以前はCloudflare証明書が必要だったすべてのHTTPS検査機能を有効にします。アカウントに複数の証明書をアップロードできますが、同時にアクティブにできるのは1つだけです。また、JIT証明書でドメインをインターセプトするためにプライベートキーをアップロードする必要があり、ブロックページを有効にする必要があります。
カスタムルートCAを生成する前に、OpenSSL ↗がインストールされていることを確認してください。
-
ターミナルを開きます。
-
ルートCA用のディレクトリを作成し、その中に移動します。
Terminal window mkdir -p /root/customcacd /root/customca -
ルートCA用のプライベートキーを生成します。
Terminal window openssl genrsa -out <CUSTOM-ROOT-PRIVATE-KEY>.pem 2048 -
自己署名のルート証明書を生成します。
Terminal window openssl req -x509 -sha256 -new -nodes -key <CUSTOM-ROOT-PRIVATE-KEY>.pem -days 365 -out <CUSTOM-ROOT-CERT>.pem
証明書とプライベートキーをアップロードする準備をする際は、証明書のコモンネームに不一致のサブドメインなどの不要な文字を削除してください。プライベートキーを確認するには、次のコマンドを実行します。
openssl rsa -in <CUSTOM-ROOT-PRIVATE-KEY>.pem -text証明書を確認するには、次のコマンドを実行します。
openssl x509 -in <CUSTOM-ROOT-CERT>.pem -text-
証明書がデバイスにインストールされていることを確認します。
-
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
\nreplacing the line breaks.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"...}} -
UUIDを使用してGatewayで証明書を有効にします。
Terminal window curl --request PATCH \"https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/configuration" \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" \--data '{"settings": {"custom_certificate": {"enabled": true,"id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60"}}}'レスポンスには、証明書の現在のステータスが表示されます。
{"success": true,"errors": [],"messages": [],"result": {"settings": {"antivirus": {...},"block_page": {...},"custom_certificate":{"enabled": true,"id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60","binding_status": "pending_deployment","qs_pack_id": "50a78g31-a5b5-4k58d-a6ed-b0ac17da9k05"},"tls_decrypt": {...},"activity_log": {...},"browser_isolation": {...},"fips": {...},},},"created_at": "2014-01-01T05:20:00.12345Z","updated_at": "2014-01-01T05:20:00.12345Z"}
binding_statusがactiveに変わると、Gatewayはカスタムルート証明書とプライベートキーを使用してトラフィックに署名します。カスタム証明書を無効にすると、GatewayはデフォルトのCloudflare証明書に戻ります。
カスタム証明書をデプロイした後にGatewayがHTTPレスポンスコード: 526を返す場合は、FAQでエラーをトラブルシューティングしてください。