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.
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. 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>
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.
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...
Portalın Tüm kaynaklar bölümünde bulut hizmetinizi seçin.
Sertifikalar'ı seçin.
Sertifikalar alanının üst kısmındaki Karşıya Yükle'yi seçin.
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.
Web tarayıcısını açmak için Site URL'sini seçin.
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.)
İ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
- Bulut hizmetinizin genel yapılandırması.
- Bulut hizmeti dağıtmayı öğrenin.
- Özel bir etki alanı adı yapılandırın.
- Bulut hizmetinizi yönetin.