← Cloudflare for Platforms / cloudflare-for-platforms / cloudflare-for-saas / domain-support / hostname-validation
Migrace bez výpadku
Pokud koncový zákazník už provozuje web na jiné CDN, přesměrování jeho CNAME na váš záložní origin Cloudflare vytvoří krátké okno, během kterého Cloudflare ještě nemůže jeho provoz proxovat. Předběžné ověření vám umožní potvrdit vlastnictví hostitelského názvu a volitelně předem vydat certifikát TLS před přepnutí DNS, takže migrace proběhne bez výpadku.
Postup migrace
- Vytvořte vlastní hostname přes API.
- Předem ověřte vlastnictví hostitelského názvu pomocí HTTP tokenu nebo DNS záznamu TXT.
- Vystavte certifikát TLS ještě před přepnutím DNS.
- Potvrďte, že hostname je
active. - Aktualizujte CNAME záznam koncového zákazníka: provoz se přepne bez výpadku.
Krok 1: Vytvořte vlastní hostitelský název
Zavolejte Create Custom Hostname endpoint. Všimněte si ownership_verification a ownership_verification_http polí v odpovědi, budete je potřebovat v dalším kroku.
curl https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"hostname": "app.example.com",
"ssl": {
"method": "http",
"type": "dv",
"settings": {
"http2": "on",
"min_tls_version": "1.2"
}
}
}'{
"result": {
"id": "24c8c68e-bec2-49b6-868e-f06373780630",
"hostname": "app.example.com",
"status": "pending",
"verification_errors": ["custom hostname does not CNAME to this zone."],
"ownership_verification": {
"type": "txt",
"name": "_cf-custom-hostname.app.example.com",
"value": "0e2d5a7f-1548-4f27-8c05-b577cb14f4ec"
},
"ownership_verification_http": {
"http_url": "http://app.example.com/.well-known/cf-custom-hostname-challenge/24c8c68e-bec2-49b6-868e-f06373780630",
"http_body": "48b409f6-c886-406b-8cbc-0fbf59983555"
},
"created_at": "2020-03-04T20:06:04.117122Z"
}
} verification_errors pole zobrazí custom hostname does not CNAME to this zone v této fázi, což je očekávané chování. Chyba zmizí, jakmile se dokončí předběžné ověření.
Krok 2: Předběžně ověřte vlastnictví hostitelského názvu
Vyberte metodu, která odpovídá situaci vašeho koncového zákazníka.
Možnost A: token HTTP (koncový zákazník nespravuje DNS)
Tuto metodu použijte, pokud koncový zákazník nemůže aktualizovat své autoritativní DNS, nebo pokud chcete ověření provést sami.
-
Zkopírujte
http_urlahttp_bodyzownership_verification_httpobjekt v odpovědi Create Custom Hostname. -
Nechte koncového zákazníka zpřístupnit
http_bodyhodnotu nahttp_urlcestu na svém origin serveru. Například v nginx:příklad pro nginxlocation /.well-known/cf-custom-hostname-challenge/24c8c68e-bec2-49b6-868e-f06373780630 { return 200 "48b409f6-c886-406b-8cbc-0fbf59983555\n"; }Cloudflare tuto adresu URL prochází pomocí
User-Agent: Cloudflare Custom Hostname Verification. Origin musí odpovědět s200stav a přesnou hodnotu tokenu v těle požadavku. -
Počkejte několik minut, než Cloudflare token načte. Stav hostitelského názvu se změní z
pendingnaactivejakmile je vlastnictví potvrzeno.
Možnost B: záznam TXT (koncový zákazník spravuje DNS)
Tuto metodu použijte, pokud koncový zákazník může přidat DNS záznam u svého autoritativního poskytovatele DNS.
-
Zkopírujte
nameavaluezownership_verificationobjekt v odpovědi Create Custom Hostname. -
Nechte koncového zákazníka přidat
TXTzáznam u svého poskytovatele DNS:Typ Název Hodnota TXT_cf-custom-hostname.app.example.com0e2d5a7f-1548-4f27-8c05-b577cb14f4ec -
Počkejte několik minut, než Cloudflare záznam zjistí. Stav hostitelského názvu se změní na
activejakmile je vlastnictví potvrzeno. -
Jakmile je hostitelský název aktivní, může koncový zákazník odstranit záznam TXT.
Krok 3: Předběžně vystavte certifikát TLS
Předběžné vystavení certifikátu zajistí, že při přepnutí nedojde k chybě TLS. Bez tohoto kroku nelze certifikát vystavit dříve, než záznam CNAME koncového zákazníka začne směřovat na Cloudflare, což znamená ssl.status zůstane pending prostřednictvím změny DNS. Vyberte jednu z těchto metod:
- Delegovaná DCV - Jednorázový záznam CNAME deleguje
_acme-challengedo vaší SaaS zóny, čímž Cloudflare automaticky zajistí všechna budoucí obnovení certifikátu. Koncový klient může umístit delegační CNAME záznam do vlastní autoritativní DNS, nebo pokud DNS pro své klienty hostujete přímo vy, můžete ho umístit do vlastní zóny. - Ověření TXT - Nechte koncového zákazníka přidat
TXTzáznam do svého autoritativního DNS. Vyžadováno pro wildcard vlastní hostitelské názvy. - Manuální HTTP validation - Poskytněte soubor s DCV tokenem na
/.well-known/cestu na origin serveru. Ze strany koncového zákazníka není nutná žádná akce.
Krok 4: Potvrďte, že je hostitelský název aktivní
Než aktualizujete DNS, ověřte, že jsou hostitelský název i certifikát připraveny.
curl https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_hostnames/{custom_hostname_id} \
--header "Authorization: Bearer <API_TOKEN>"{
"result": {
"id": "24c8c68e-bec2-49b6-868e-f06373780630",
"hostname": "app.example.com",
"status": "active",
"ssl": {
"status": "active"
}
}
}Počkejte, až obě result.status a result.ssl.status jsou active než budete pokračovat. Pokud je kterékoli z nich stále pending, počkejte a zkuste dotaz znovu.
Krok 5: Aktualizujte CNAME koncového zákazníka
Jakmile result.status je active (a ssl.status je active také, pokud jste certifikát předem vydali v kroku 3), požádejte koncového klienta, aby aktualizoval svůj CNAME záznam tak, aby směřoval na váš záložní origin:
| Typ | Název | Hodnota |
|---|---|---|
CNAME |
app |
fallback.yoursaaszone.com |
Provoz se začne směrovat přes Cloudflare, jakmile se DNS propaguje. Protože byl hostitelský název už ověřen a certifikát už byl vydán, během přechodu nedochází k žádnému výpadku ani chybě certifikátu.