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.

  1. 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.
  2. 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>
    
  3. 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.

  4. 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...

  1. V části Všechny prostředky portálu vyberte svoji cloudovou službu.

    Publikování cloudové služby

  2. Klikněte na Certifikáty.

    Klikněte na ikonu certifikáty.

  3. V horní části oblasti certifikátů klikněte na Nahrát .

    Klikněte na položku nabídky Nahrát.

  4. 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.

  1. Kliknutím na adresu URL webu otevřete webový prohlížeč.

    Klikněte na adresu URL webu.

  2. 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.)

    Náhled webu

    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