Azure'da bir uygulama için TLS'yi yapılandırma

Önemli

Cloud Services (klasik) artık yeni müşteriler için kullanımdan kaldırılmıştır ve tüm müşteriler için 31 Ağustos 2024'te kullanımdan kaldırılacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.

Daha önce Güvenli Yuva Katmanı (SSL) şifrelemesi olarak bilinen Aktarım Katmanı Güvenliği (TLS), İnternet üzerinden gönderilen verilerin güvenliğini sağlamak için en yaygın kullanılan yöntemdir. Bu yaygın görev, bir web rolü için HTTPS uç noktasının nasıl belirtileceğini ve uygulamanızın güvenliğini sağlamak için TLS/SSL sertifikasının nasıl karşıya yükleneceğini açıklar.

Not

Bu görevdeki yordamlar Azure Cloud Services için geçerlidir; App Services için buna bakın.

Bu görev bir üretim dağıtımı kullanır. Hazırlama dağıtımı kullanma hakkında bilgiler bu konunun sonunda sağlanır.

Henüz bir bulut hizmeti oluşturmadıysanız önce bunu okuyun.

1. Adım: TLS/SSL sertifikası alma

Bir uygulama için TLS'yi yapılandırmak için, önce bu amaçla sertifika veren güvenilir bir üçüncü taraf olan Sertifika Yetkilisi (CA) tarafından imzalanmış bir TLS/SSL sertifikası almanız gerekir. Henüz bir sertifikanız yoksa, TLS/SSL sertifikaları satan bir şirketten edinmeniz gerekir.

Sertifika, Azure'da TLS/SSL sertifikaları için aşağıdaki gereksinimleri karşılamalıdır:

  • Sertifika bir ortak anahtar içermelidir.
  • Sertifika, bir Kişisel Bilgi Değişimi (.pfx) dosyasına aktarılabilen anahtar değişimi için oluşturulmalıdır.
  • Sertifikanın konu adı, bulut hizmetine erişmek için kullanılan etki alanıyla eşleşmelidir. cloudapp.net etki alanı için bir sertifika yetkilisinden (CA) TLS/SSL sertifikası alamazsınız. Hizmetinize erişirken kullanmak için özel bir etki alanı adı almanız gerekir. CA'dan sertifika istediğinizde, sertifikanın konu adı uygulamanıza erişmek için kullanılan özel etki alanı adıyla eşleşmelidir. Örneğin, özel etki alanı adınız contoso.com ca'nızdan *.contoso.com veya www.contoso.com için bir sertifika isteyebilirsiniz.
  • Sertifika en az 2048 bit şifreleme kullanmalıdır.

Test amacıyla otomatik olarak imzalanan bir sertifika oluşturabilir ve kullanabilirsiniz. Otomatik olarak imzalanan sertifikanın kimliği CA aracılığıyla doğrulanmaz ve web sitesi URL'si olarak cloudapp.net etki alanını kullanabilir. Örneğin, aşağıdaki görev, sertifikada kullanılan ortak adın (CN) sslexample.cloudapp.net otomatik olarak imzalanan bir sertifika kullanır.

Ardından, hizmet tanımınıza ve hizmet yapılandırma dosyalarınıza sertifika hakkında bilgi eklemeniz gerekir.

2. Adım: Hizmet tanımını ve yapılandırma dosyalarını değiştirme

Uygulamanızın sertifikayı kullanacak şekilde yapılandırılması ve bir HTTPS uç noktası eklenmesi gerekir. Sonuç olarak, hizmet tanımı ve hizmet yapılandırma dosyalarının güncelleştirilmiş olması gerekir.

  1. Geliştirme ortamınızda hizmet tanımı dosyasını (CSDEF) açın, WebRole bölümüne bir Sertifikalar bölümü ekleyin ve sertifika (ve ara sertifikalar) hakkında aşağıdaki bilgileri ekleyin:

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

    Sertifikalar bölümü sertifikamızın adını, konumunu ve bulunduğu deponun adını tanımlar.

    İzinler (permissionLevel öznitelik) aşağıdaki değerlerden birine ayarlanabilir:

    İzin Değeri Açıklama
    limitedOrElevated (Varsayılan) Tüm rol işlemleri özel anahtara erişebilir.
    Yükseltilmiş Özel anahtara yalnızca yükseltilmiş işlemler erişebilir.
  2. HIZMET tanımı dosyanızda, HTTPS'yi etkinleştirmek için Uç Noktalar bölümüne bir InputEndpoint öğesi ekleyin:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Endpoints>
            <InputEndpoint name="HttpsIn" protocol="https" port="443"
                certificate="SampleCertificate" />
        </Endpoints>
    ...
    </WebRole>
    
  3. Hizmet tanımı dosyanızda Siteler bölümüne bir Bağlama öğesi ekleyin. Bu öğe, uç noktayı sitenize eşlemek için bir HTTPS bağlaması ekler:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Sites>
            <Site name="Web">
                <Bindings>
                    <Binding name="HttpsIn" endpointName="HttpsIn" />
                </Bindings>
            </Site>
        </Sites>
    ...
    </WebRole>
    

    Hizmet tanımı dosyasında gerekli tüm değişiklikler tamamlandı; ancak yine de sertifika bilgilerini hizmet yapılandırma dosyasına eklemeniz gerekir.

  4. Hizmet yapılandırma dosyanızda (CSCFG), ServiceConfiguration.Cloud.cscfg, sertifikanızınkiyle bir Sertifikalar değeri ekleyin. Aşağıdaki kod örneği, parmak izi değeri dışında Sertifikalar bölümünün ayrıntılarını sağlar.

    <Role name="Deployment">
    ...
        <Certificates>
            <Certificate name="SampleCertificate"
                thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff"
                thumbprintAlgorithm="sha1" />
            <Certificate name="CAForSampleCertificate"
                thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc"
                thumbprintAlgorithm="sha1" />
        </Certificates>
    ...
    </Role>
    

(Bu örnekte parmak izi algoritması için sha1 kullanılır. Sertifikanızın parmak izi algoritması için uygun değeri belirtin.)

Hizmet tanımı ve hizmet yapılandırma dosyaları güncelleştirildiğinden, dağıtımınızı Azure'a yüklemek üzere paketleyin. cspack kullanıyorsanız, az önce eklediğiniz sertifika bilgilerinin üzerine yazılacağından /generateConfigurationFile bayrağını kullanmayın.

3. Adım: Sertifikayı karşıya yükleme

Azure portal bağlanın ve...

  1. Portalın Tüm kaynaklar bölümünde bulut hizmetinizi seçin.

    Bulut hizmetinizi yayımlama

  2. Sertifikalar’a tıklayın.

    Sertifikalar simgesine tıklayın

  3. Sertifikalar alanının üst kısmındaki Karşıya Yükle'ye tıklayın.

    Karşıya Yükle menü öğesine tıklayın

  4. Dosya, Parola'yı girin, ardından veri giriş alanının en altındaki Karşıya Yükle'ye tıklayın.

4. Adım: HTTPS kullanarak rol örneğine bağlanma

Dağıtımınız Artık Azure'da çalışır durumda olduğuna göre, HTTPS kullanarak bu dağıtıma bağlanabilirsiniz.

  1. Web tarayıcısını açmak için Site URL'sine tıklayın.

    Site URL'sine tıklayın

  2. Web tarayıcınızda bağlantıyı http yerine https kullanacak şekilde değiştirin ve sayfayı ziyaret edin.

    Not

    Otomatik olarak imzalanan bir sertifika kullanıyorsanız, otomatik olarak imzalanan sertifikayla ilişkili bir HTTPS uç noktasına göz atarken tarayıcıda bir sertifika hatası görebilirsiniz. Güvenilen bir sertifika yetkilisi tarafından imzalanan bir sertifikanın kullanılması bu sorunu ortadan kaldırır; bu arada hatayı yoksayabilirsiniz. (Bir diğer seçenek de otomatik olarak imzalanan sertifikayı kullanıcının güvenilen sertifika yetkilisi sertifika deposuna eklemektir.)

    Site önizlemesi

    İpucu

    TlS'yi üretim dağıtımı yerine hazırlama dağıtımı için kullanmak istiyorsanız, önce hazırlama dağıtımı için kullanılan URL'yi belirlemeniz gerekir. Bulut hizmetiniz dağıtıldıktan sonra hazırlama ortamının URL'si Dağıtım Kimliği GUID'si tarafından şu biçimde belirlenir: https://deployment-id.cloudapp.net/

    ORTAK ada (CN) sahip, GUID tabanlı URL'ye eşit bir sertifika oluşturun (örneğin, 328187776e774ceda8fc57609d404462.cloudapp.net). Portalı kullanarak sertifikayı aşamalı bulut hizmetinize ekleyin. Ardından sertifika bilgilerini CSDEF ve CSCFG dosyalarınıza ekleyin, uygulamanızı yeniden paketleyin ve aşamalı dağıtımınızı yeni paketi kullanacak şekilde güncelleştirin.

Sonraki adımlar