Konfigurace protokolu TLS pro aplikaci v Azure
Důležité
Cloud Services (classic) je teď pro nové zákazníky zastaralé a 31. srpna 2024 bude vyřazeno pro všechny zákazníky. Nová nasazení by měla používat nový model nasazení založený na Azure Resource Manager 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. Tato běžná úloha 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. Pokud jde o App Services, podívejte se na toto.
Tato úloha používá produkční nasazení. Informace o použití přípravného nasazení najdete na konci tohoto tématu.
Toto si nejprve přečtěte, 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ěryhodnou třetí stranou, která vydává certifikáty pro tento účel. Pokud ho ještě nemáte, musíte si ho pořídit 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íčů, který lze exportovat do souboru .pfx (Personal Information Exchange).
- Název subjektu certifikátu se musí shodovat s doménou používanou pro přístup ke cloudové službě. Certifikát TLS/SSL nelze získat od certifikační autority (CA) pro cloudapp.net doménu. Musíte získat vlastní název domény, který se použije při přístupu k vaší službě. Když požádáte o certifikát od certifikační autority, název subjektu certifikátu se musí shodovat s vlastním názvem domény použitým pro přístup k vaší aplikaci. Pokud je například váš vlastní název domény contoso.com budete od certifikační autority požadovat certifikát 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žívat certifikát podepsaný svým držitelem. Certifikát podepsaný svým držitelem není ověřen prostřednictvím certifikační autority a jako adresu URL webu může 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 zahrnout informace o certifikátu do definice služby a konfiguračních souborů služby.
Krok 2: Úprava definice služby a konfiguračních souborů
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 definici služby a konfigurační soubory služby.
Ve vývojovém prostředí otevřete soubor definice služby (CSDEF), v části WebRole přidejte oddíl Certifikáty a přidejte 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ě, ve kterém se nachází.
Oprávnění (
permissionLevel
atribut) je možné 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 jenom procesy se zvýšenými oprávněními. Do definičního souboru služby přidejte element InputEndpoint v části Koncové body , který povolí 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 části 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 byly dokončeny; Přesto ale musíte 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 Certificates s hodnotou certifikátu. 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>
(V tomto příkladu se jako algoritmus kryptografického otisku používá sha1 . Zadejte odpovídající hodnotu pro algoritmu kryptografického otisku certifikátu.)
Teď, když se aktualizovaly definice služby a konfigurační soubory služby, zabalte nasazení k nahrání do Azure. Pokud používáte cspack, nepoužívejte příznak /generateConfigurationFile , protože tím přepíšete informace o certifikátu, které jste právě vložili.
Krok 3: Nahrání certifikátu
Připojte se k Azure Portal a...
V části Všechny prostředky portálu vyberte svoji cloudovou službu.
Klikněte na Certifikáty.
V horní části oblasti certifikátů klikněte na Nahrát .
Zadejte Soubor, Heslo a pak klikněte na 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í spuštěné v Azure, se k němu můžete připojit pomocí PROTOKOLU HTTPS.
Kliknutím na adresu URL webu otevřete webový prohlížeč.
Ve webovém prohlížeči upravte odkaz tak, aby místo http používal https, a pak přejděte na stránku.
Poznámka
Pokud používáte certifikát podepsaný svým držitelem, při přechodu na koncový bod HTTPS, který je přidružený k certifikátu podepsanému svým držitelem, může se v prohlížeči zobrazit chyba certifikátu. Použití certifikátu podepsaného důvěryhodnou certifikační autoritou tento problém eliminuje. 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 pro pracovní nasazení místo produkčního nasazení použít protokol TLS, 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 s běž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. Pak přidejte informace o certifikátu do souborů CSDEF a CSCFG, znovu zabalte aplikaci a aktualizujte fázované nasazení tak, aby používalo nový balíček.
Další kroky
- Obecná konfigurace cloudové služby
- Zjistěte, jak nasadit cloudovou službu.
- Nakonfigurujte vlastní název domény.
- Spravujte svou cloudovou službu.