Aracılığıyla paylaş


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

Önemli

Cloud Services (klasik), 1 Eylül 2024 itibarıyla tüm müşteriler için kullanım dışı bırakılmıştır. Çalışan tüm dağıtımlar Microsoft tarafından durdurulacak ve kapatılacak ve Veriler Ekim 2024'den itibaren kalıcı olarak kaybolacaktı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 makalenin sonunda sağlanır.

Henüz bir bulut hizmeti oluşturmadıysanız önce Azure Bulut Hizmeti (klasik) oluşturma ve dağıtma makalesini 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 iş ortağı olan Sertifika Yetkilisi (CA) tarafından imzalanan bir TLS/SSL sertifikası almanız gerekir. Henüz bir sertifikanız yoksa TLS/SSL sertifikası satan bir şirketten edinmeniz gerekir.

Sertifikanın Azure'da TLS/SSL sertifikaları için aşağıdaki gereksinimleri karşılaması gerekir:

  • Sertifika bir ortak anahtar içermelidir.
  • Sertifika, 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 gerekiyor.

  4. Hizmet yapılandırma dosyanızda (CSCFG), ServiceConfiguration.Cloud.cscfg, sertifikanızın sertifika değeriyle 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ını güncelleştirdiğinize göre, dağıtımınızı Azure'a yüklemek üzere paketleyin. Cspack kullanıyorsanız, eklediğiniz sertifika bilgilerinin üzerine yazıldığından /generateConfigurationFile bayrağını kullanmayın.

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

Azure portalına bağlanın ve...

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

    Bulut hizmetinizi yayımlama

  2. Sertifikalar'ı seçin.

    Sertifikalar simgesine tıklayın

  3. Sertifikalar alanının üst kısmındaki Karşıya Yükle'yi seçin.

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

  4. Dosya, Parola'yı girin ve veri giriş alanının alt kısmındaki Karşıya Yükle'yi seçin.

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'sini seçin.

  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. (Başka bir seçenek, otomatik olarak imzalanan sertifikayı kullanıcının güvenilen sertifika yetkilisi sertifika deposuna eklemektir.)

    Site önizlemesi

    İpucu

    Üretim dağıtımı yerine hazırlama dağıtımı için TLS 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