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