Konfigurace protokolu TLS pro aplikaci v Azure
Důležité
Od 1. září 2024 je služba Cloud Services (Classic) pro všechny zákazníky zastaralá. Microsoft zastaví a vypne všechna stávající spuštěná nasazení a data budou od října 2024 trvale ztracena. Nová nasazení by měla používat nový model nasazení založený na Azure Resource Manageru na Azure Cloud Services (rozšířená podpora).
Protokol TLS (Transport Layer Security), dříve označovaný jako šifrování SSL (Secure Socket Layer), je nejčastěji používanou metodou zabezpečení dat odesílaných přes internet. Tento běžný úkol popisuje, jak zadat koncový bod HTTPS pro webovou roli a jak nahrát certifikát TLS/SSL pro zabezpečení aplikace.
Poznámka:
Postupy v této úloze platí pro Azure Cloud Services; pro App Services si to prohlédnou.
Tato úloha používá produkční nasazení. Informace o použití přípravného nasazení najdete na konci tohoto článku.
Přečtěte si , jak nejprve vytvořit a nasadit cloudovou službu Azure (Classic), pokud jste ještě nevytvořili cloudovou službu.
Krok 1: Získání certifikátu TLS/SSL
Pokud chcete nakonfigurovat protokol TLS pro aplikaci, musíte nejprve získat certifikát TLS/SSL podepsaný certifikační autoritou (CA), důvěryhodný partner, který vydává certifikáty pro tento účel. Pokud ho ještě nemáte, musíte ho získat od společnosti, která prodává certifikáty TLS/SSL.
Certifikát musí splňovat následující požadavky na certifikáty TLS/SSL v Azure:
- Certifikát musí obsahovat veřejný klíč.
- Certifikát musí být vytvořen pro výměnu klíčů, exportovatelný do souboru Personal Information Exchange (.pfx).
- Název subjektu certifikátu se musí shodovat s doménou používanou pro přístup ke cloudové službě. Certifikát TLS/SSL nemůžete získat od certifikační autority (CA) pro cloudapp.net doménu. Musíte získat vlastní název domény, který se má použít při přístupu ke službě. Když požádáte o certifikát od certifikační autority, musí název subjektu certifikátu odpovídat vlastnímu názvu domény použitému pro přístup k vaší aplikaci. Pokud je například váš vlastní název domény contoso.com požádáte o certifikát od certifikační autority pro *.contoso.com nebo www.contoso.com.
- Certifikát musí používat minimálně 2048bitové šifrování.
Pro účely testování můžete vytvořit a použít certifikát podepsaný svým držitelem. Certifikát podepsaný svým držitelem není ověřený prostřednictvím certifikační autority a může jako adresu URL webu použít cloudapp.net doménu. Například následující úloha používá certifikát podepsaný svým držitelem, ve kterém je běžný název (CN) použitý v certifikátu sslexample.cloudapp.net.
Dále musíte do definice služby a konfiguračních souborů služby zahrnout informace o certifikátu.
Krok 2: Úprava definice a konfiguračních souborů služby
Aplikace musí být nakonfigurovaná tak, aby používala certifikát, a musí se přidat koncový bod HTTPS. V důsledku toho je potřeba aktualizovat definice služby a konfigurační soubory služby.
Ve vašem vývojovém prostředí otevřete definiční soubor služby (CSDEF), přidejte do části Webová role oddíl Certifikáty a uveďte následující informace o certifikátu (a zprostředkujících certifikátech):
<WebRole name="CertificateTesting" vmsize="Small"> ... <Certificates> <Certificate name="SampleCertificate" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" /> <!-- IMPORTANT! Unless your certificate is either self-signed or signed directly by the CA root, you must include all the intermediate certificates here. You must list them here, even if they are not bound to any endpoints. Failing to list any of the intermediate certificates may cause hard-to-reproduce interoperability problems on some clients.--> <Certificate name="CAForSampleCertificate" storeLocation="LocalMachine" storeName="CA" permissionLevel="limitedOrElevated" /> </Certificates> ... </WebRole>
Oddíl Certifikáty definuje název certifikátu, jeho umístění a název úložiště, kde se nachází.
Oprávnění (
permissionLevel
atribut) lze nastavit na jednu z následujících hodnot:Hodnota oprávnění Popis limitedOrElevated (Výchozí) K privátnímu klíči mají přístup všechny procesy rolí. zvýšení K privátnímu klíči mají přístup pouze procesy se zvýšenými oprávněními. Do definičního souboru služby přidejte element InputEndpoint v části Koncové body , abyste povolili HTTPS:
<WebRole name="CertificateTesting" vmsize="Small"> ... <Endpoints> <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="SampleCertificate" /> </Endpoints> ... </WebRole>
Do definičního souboru služby přidejte element Binding v oddílu Weby . Tento element přidá vazbu HTTPS pro mapování koncového bodu na váš web:
<WebRole name="CertificateTesting" vmsize="Small"> ... <Sites> <Site name="Web"> <Bindings> <Binding name="HttpsIn" endpointName="HttpsIn" /> </Bindings> </Site> </Sites> ... </WebRole>
Všechny požadované změny definičního souboru služby jsou hotové, ale přesto je potřeba přidat informace o certifikátu do konfiguračního souboru služby.
Do konfiguračního souboru služby (CSCFG), ServiceConfiguration.Cloud.cscfg přidejte hodnotu Certifikáty s certifikátem. Následující ukázka kódu obsahuje podrobnosti o části Certifikáty s výjimkou hodnoty kryptografického otisku.
<Role name="Deployment"> ... <Certificates> <Certificate name="SampleCertificate" thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff" thumbprintAlgorithm="sha1" /> <Certificate name="CAForSampleCertificate" thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc" thumbprintAlgorithm="sha1" /> </Certificates> ... </Role>
(Tento příklad používá sha1 pro algoritmus kryptografického otisku. Zadejte odpovídající hodnotu pro algoritmu kryptografický otisk vašeho certifikátu.)
Teď, když jste aktualizovali definici služby a konfigurační soubory služby, zabalte nasazení pro nahrání do Azure. Pokud používáte cspack, nepoužívejte příznak /generateConfigurationFile , protože tím se přepíšou informace o certifikátu, které jste vložili.
Krok 3: Nahrání certifikátu
Připojte se k webu Azure Portal a...
V části Všechny prostředky na portálu vyberte cloudovou službu.
Vyberte Certifikáty.
V horní části oblasti certifikátů vyberte Nahrát .
Zadejte Soubor, Heslo a pak vyberte Nahrát v dolní části oblasti pro zadávání dat.
Krok 4: Připojení k instanci role pomocí protokolu HTTPS
Teď, když je vaše nasazení v Azure spuštěné, se k němu můžete připojit pomocí protokolu HTTPS.
Vyberte adresu URL webu a otevřete webový prohlížeč.
Ve webovém prohlížeči upravte odkaz tak, aby místo http používal https, a pak stránku navštivte.
Poznámka:
Pokud používáte certifikát podepsaný svým držitelem, při přechodu na koncový bod HTTPS přidružený k certifikátu podepsanému svým držitelem se může v prohlížeči zobrazit chyba certifikátu. Použití certifikátu podepsaného důvěryhodnou certifikační autoritou eliminuje tento problém; mezitím můžete chybu ignorovat. (Další možností je přidat certifikát podepsaný svým držitelem do úložiště certifikátů důvěryhodné certifikační autority uživatele.)
Tip
Pokud chcete použít protokol TLS pro přípravné nasazení místo produkčního nasazení, musíte nejprve určit adresu URL použitou pro přípravné nasazení. Po nasazení cloudové služby je adresa URL přípravného prostředí určená identifikátorem GUID ID nasazení v tomto formátu:
https://deployment-id.cloudapp.net/
Vytvořte certifikát se společným názvem (CN), který se rovná adrese URL založené na identifikátoru GUID (například 328187776e774ceda8fc57609d404462.cloudapp.net). Pomocí portálu přidejte certifikát do vaší fázované cloudové služby. Potom přidejte informace o certifikátu do souborů CSDEF a CSCFG, znovu zabalte aplikaci a aktualizujte připravené nasazení tak, aby používalo nový balíček.