← Cloudflare for Platforms / cloudflare-for-platforms / cloudflare-for-saas / security / certificate-management / custom-certificates
Žádosti o podpis certifikátu (CSR)
Vygenerujte žádost o podpis certifikátu (CSR), abyste získali vlastní certifikát od certifikační autority (CA) podle vlastního výběru, přičemž kontrolu nad soukromým klíčem si ponechá Cloudflare. Soukromý klíč přiřazený k CSR vygeneruje Cloudflare a nikdy neopustí naši síť.
Žádost CSR obsahuje informace o vaší doméně: název a adresu vaší organizace, obecný název (doménové jméno) a alternativní názvy subjektu (SAN).
Jakmile CSR vygenerujete, poskytněte ho svému zákazníkovi. Ten ho následně předá své preferované certifikační autoritě, která vystaví certifikát a vrátí mu ho. Jakmile certifikát obdržíte, nahrajte ho do Cloudflare a uveďte jedinečné ID CSR, které jste dostali při jeho vytvoření.
Vygenerujte privátní klíč a CSR
1. Sestavte payload CSR
Všechna pole kromě organizational_unit a key_type jsou povinná. Pokud neuvedete key_type, výchozí hodnota rsa2048 (bude použit RSA 2048 bit); druhou možností je p256v1 (NIST P-256).
Obecné názvy jsou omezeny na 64 znaků a alternativní názvy subjektu (SAN) jsou omezeny na 255 znaků, podle RFC 5280 ↗. Musíte zadat alespoň jeden SAN a seznam SAN by měl obsahovat i obecný název.
request_body=$(< <(cat <<EOF
{
"country": "US",
"state": "MA",
"locality": "Boston",
"organization": "City of Boston",
"organizational_unit": "Championship Parade Detail",
"common_name": "app.example.com",
"sans": [
"app.example.com",
"www.example.com",
"blog.example.com",
"example.com"
],
"key_type": "p256v1"
}
EOF
))2. Vygenerujte CSR
Nyní vygenerujete CSR, který můžete poskytnout svému zákazníkovi.
curl https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_csrs \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data "$request_body"
# Response:
{
"result": {
"id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752",
"country": "US",
"state": "MA",
"locality": "Boston",
"organization": "City of Boston",
"organizational_unit": "Championship Parade Detail",
"common_name": "app.example.com",
"sans": [
"app.example.com",
"www.example.com",
"blog.example.com",
"example.com",
],
"key_type": "p256v1",
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIIBSzCB8gIBADBiMQswaQYDVQQGEwJVUzELMAkGA1UECBMCTUExDzANBgNVBAcT\nBkJvc3RvbjEaMBgGA1UEChMRQ2l0eSBvZiBDaGFtcGlvbnMxGTAXBgNVBAMTEGNz\nci1wcm9kLnRscy5mdW4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAaTKf70NYlwr\n20P6P8xj8/4mTN5q28dbZR/gM3u4m/RPs24+PxAfMZCNvkVKAPVWYfUAadZI4Ha/\ndxLh5Q6X5bhIoC4wLAYJKoZIhvcNAQkOMR8wHTAbBqNVHREEFDASghBjc3ItcHJv\nZC50bHMuZnVuMAoGCCqGSM49BAMCA0gAMEUCIQDgtFUZav466SbT2FGBsIBlahDI\nVkg4y+u+V/K5DlY1+gIgQ9xLfUSKnSnJYbM9TwWr4Z964+lBtB9af4O5pp7/PSA=\n-----END CERTIFICATE REQUEST-----\n"
},
"success": trueNahraďte \n znaky skutečnými znaky nového řádku, než je předáte svému zákazníkovi. Toho lze dosáhnout přesměrováním výstupu předchozího volání do nástroje, jako je jq nebo perl, například:
curl https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_csrs \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data "$request_body" | jq .result.csr | perl -npe s'/\\n/\n/g; s/"//g' > csr.txt3. Zákazník získá certifikát
Váš zákazník použije poskytnutý CSR a ve spolupráci se svou certifikační autoritou získá podepsaný, veřejně důvěryhodný certifikát.
4. Nahrajte certifikát
Nahrajte certifikát a odkažte na ID, které bylo poskytnuto při generování CSR.
Nové řádky v certifikátu byste měli nahradit doslovným \n znaky, jak je znázorněno výše v příkladu nahrání vlastního certifikátu. Poté sestavte tělo požadavku a uveďte ID, které bylo vráceno v předchozím kroku.
Cloudflare přijímá pouze veřejně důvěryhodné certifikáty. Pokud se pokusíte nahrát self-signed certifikát, bude odmítnut.
$ MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')"
$ request_body=$(< <(cat <<EOF
{
"hostname": "app.example.com",
"ssl": {
"custom_csr_id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752",
"custom_certificate": "$MYCERT"
}
}
EOF
))Po sestavení těla požadavku, vytvořte vlastní hostname s dodaným vlastním certifikátem. Pokud chcete certifikát použít pro více názvů hostitele, provedete více volání API a nahradíte hostname .
Další akce
Vypsat všechny CSR
Kolekci všech dříve vygenerovaných vlastních CSR (stránkovanou) si můžete vyžádat pomocí GET požadavek na https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_csrs.
Odstranění CSR
Odstraňte jeden nebo více CSR, čímž odstraníte i podkladový privátní klíč, a to provedením DELETE požadavek na https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_csrs/{csr_id}.
CSR můžete odstranit za předpokladu, že žádný vlastní certifikát nepoužívá soukromý klíč vygenerovaný pro tento CSR. Pokud se pokusíte odstranit CSR, jehož soukromý klíč se stále používá, obdržíte chybu.