TlS/SSL bağlaması ile özel bir DNS adının güvenliğini Azure App Service
Bu makalede, sertifika bağlaması oluşturarak uygulama veya işlev App Service uygulamanıza özel etki alanının güvenliğini sağlamayı gösterir. Bitirdikten sonra, özel DNS adınız için uç App Service uç noktada uygulama uygulamanıza https:// erişebilirsiniz (örneğin, https://www.contoso.com ).

Özel etki alanının sertifika ile güvenliğini sağlamak için iki adım gerekir:
- Tüm özel sertifika gereksinimlerini App Service bir özel sertifika ekleyin.
- İlgili özel etki alanına bir TLS bağlaması oluşturun. Bu ikinci adım bu makalenin kapsamındadır.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Uygulamanızın fiyatlandırma katmanını yükseltme
- Sertifika ile özel etki alanının güvenliğini sağlama
- HTTPS'yi zorunlu tutma
- TLS 1.1/1.2 zorlama
- TLS yönetimini betiklerle otomatikleştirme
Önkoşullar
Bu nasıl sıyrı kılavuzu takip etmek için:
- App Service uygulaması oluşturma
- Bir etki alanı adını uygulamanıza eşleme veya Azure'da satın alıp yapılandırma
- Uygulamanıza özel sertifika ekleme
Not
Özel sertifika eklemenin en kolay yolu, yönetilen bir sertifika için ücretsiz App Service oluşturmaktır.
Web uygulamanızı hazırlama
Özel TLS/SSL bağlamaları oluşturmak veya App Service uygulamanız için istemci sertifikalarını etkinleştirmek üzere App Service planınız temel, Standart, Premium veya yalıtılmış katmanda olmalıdır. Bu adımda, web uygulamanızın desteklenen bir fiyatlandırma katmanında olduğundan emin olacaksınız.
Azure'da oturum açma
Azure portalını açın.
Web uygulamanıza gidin
Uygulama hizmetleri' ni arayıp seçin.

Uygulama hizmetleri sayfasında, Web uygulamanızın adını seçin.

Web uygulamanızın yönetim sayfasına ulaştınız.
Fiyatlandırma katmanını denetleme
Web uygulaması sayfasının sol gezinti bölmesinde Ayarlar bölümüne kaydırın ve Ölçeği artır (App Service planı) öğesini seçin.

Web uygulamanızın F1 veya D1 katmanında olmadığından emin olun. Web uygulamanızın geçerli katmanı koyu mavi bir kutuyla vurgulanır.

F1 veya D1 katmanında özel SSL desteklenmez. Ölçeği artırmanız gerekirse sonraki bölümde verilen adımları izleyin. Aksi takdirde, Ölçek artırma sayfasını kapatın ve App Service planınızı ölçeği büyütme bölümünü atlayın.
App Service planınızın ölçeğini artırma
Ücretsiz olmayan katmanlardan birini seçin (B1, B2, B3, veya Üretim kategorisindeki herhangi bir katmanı). Ek seçenekler için Ek seçeneklere bakın’a tıklayın.
Uygula’ya tıklayın.

Aşağıdaki bildirimi gördüğünüzde, ölçeklendirme işlemi tamamlanmıştır.

Özel etki alanının güvenliğini sağlama
Aşağıdaki adımları uygulayın:
Uygulama Azure portalmenüsünden Uygulama Hizmetleri'ne > <app-name> tıklayın.
Uygulamanın sol gezinti bölmesinden TLS/SSL Bağlama iletişim kutusunu şu şekilde başlatabilirsiniz:
- Özel etki alanları Bağlama > ekle'yi seçme
- TLS/SSL ayarlarını seçme > TLS/SSL bağlaması ekleme

Bu Custom Domain, bağlama eklemek istediğiniz özel etki alanını seçin.
Uygulamanız seçili özel etki alanı için zaten bir sertifikaya sahipse Doğrudan bağlama oluştur'a gidin. Aksi takdirde devam etmek.
Özel etki alanı için sertifika ekleme
Uygulamanıza seçili özel etki alanı için sertifika yoksa iki seçeneğiniz vardır:
- Upload PFX Sertifikası - Özel bir sertifika Uploadiş akışını izleyin ve burada bu seçeneği belirleyin.
- İçeri App Service Sertifikası - Bir sertifikayı içeri aktarma App Service iş akışını izleyin,ardından burada bu seçeneği belirleyin.
Not
Ayrıca Ücretsiz bir sertifika oluşturabilir veya Bir Key Vault sertifikasını içeri aktarabilirsiniz,ancak bunu ayrı ayrı yapmalı ve ardından TLS/SSL Bağlama iletişim kutusuna geri dönebilirsiniz.
Bağlama oluşturma
TLS/SSL Bağlama iletişim kutusunda TLS bağlamasını yapılandırmanıza yardımcı olması için aşağıdaki tabloyu kullanın ve Bağlama Ekle'ye tıklayın.
| Ayar | Açıklama |
|---|---|
| Özel etki alanı | TLS/SSL bağlaması eklemek için etki alanı adı. |
| Özel Sertifika Parmak Izi | Bağlan verilecek sertifika. |
| TLS/SSL Türü |
|
İşlem tamamlandıktan sonra özel etki alanının TLS/SSL durumu Güvenli olarak değiştirilir.

Not
Özel etki alanlarındaki Güvenli durum, sertifikanın bir sertifika ile güvenli olduğu anlamına gelir, ancak App Service sertifikanın otomatik olarak imzalanan veya süresi dolmuş olup olmadığını denetlemez. Bu durum tarayıcıların hata veya uyarı göstermelerini de sağlar.
IP SSL için kayıtları yeniden eşleme
Uygulamanıza uygulamanıza IP SSL özel etki alanınız için HTTPS'yi test etme adımına atlayabilirsiniz.
İki değişiklik yapmak gerekir, potansiyel olarak:
Varsayılan olarak, uygulamanız paylaşılan bir genel IP adresi kullanır. Bir sertifikayı IP SSL App Service için yeni, ayrılmış bir IP adresi oluşturur. Uygulamanıza bir A kaydı eşledıysanız, etki alanı kayıt defterinizi bu yeni, ayrılmış IP adresiyle güncelleştirin.
Uygulamanın Özel etki alanı sayfası yeni, ayrılmış IP adresiyle güncelleştirilir. Bu IP adresini kopyalayın, ardından bu yeni IP adresine A kaydını yeniden eşleyin.
için bir SNI SSL
<app-name>.azurewebsites.netvarsa, herhangi bir CNAME eşlemesini bunun yerine işaret edecek şekildesni.<app-name>.azurewebsites.netyeniden eşler (ön ekisniekleyin).
HTTPS’yi test etme
Çeşitli tarayıcılarda, https://<your.custom.domain> uygulamanıza hizmet ettiği doğrulamak için göz atabilirsiniz.
Uygulama kodunuz protokolü "x-appservice-proto" üst bilgisi aracılığıyla inceler. Üst bilgi veya değerine http sahip https olur.
Not
Uygulamanız size sertifika doğrulama hataları veriyorsa, büyük olasılıkla otomatik olarak imzalanan bir sertifika kullanıyorsanız.
Böyle bir durum söz konusu değilse, sertifikanızı PFX dosyasına aktardığınızda ara sertifikaları dışarıda bırakmış olabilirsiniz.
IP değişikliklerini önleme
Bağlama silinse bile gelen IP adresiniz IP SSL. Bu özellikle, zaten bir sertifika bağlaması içinde olan bir sertifikayı yenilerken IP SSL önemlidir. Uygulamanızın IP adresinin değişmesini önlemek için şu adımları sırasıyla izleyin:
- Yeni sertifikayı karşıya yükleyin.
- Eskisini silmeden yeni sertifikayı istediğiniz özel etki alanına bağlayın. Bu eylem, eskisini kaldırmak yerine bağlamayı değiştirir.
- Eski sertifikayı silin.
HTTPS'yi zorunlu tutma
Varsayılan olarak, herkes http kullanarak uygulamanıza erişmeye devam ediyor. Tüm HTTPS isteklerini HTTP bağlantı noktasına yeniden yönlendirebilirsiniz.
Uygulama sayfasının sol gezinti bölmesinde TLS/SSL ayarları'na tıklayın. Ardından Yalnızca HTTPS menüsünde Açık’ı seçin.

İşlem tamamlandığında, uygulamanıza işaret eden HTTP URL'lerinden herhangi birine gidin. Örnek:
http://<app_name>.azurewebsites.nethttp://contoso.comhttp://www.contoso.com
TLS sürümlerini zorlama
Uygulamanız varsayılan olarak TLS 1.2 sürümüne izin verir. Bu, PCI DSS gibi endüstri standartlarınca önerilen TLS düzeyidir. Farklı TLS sürümlerini zorlamak için aşağıdaki adımları uygulayın:
Uygulama sayfasının sol gezinti bölmesinde TLS/SSL ayarları'na tıklayın. Ardından TLS sürümü’nde istediğiniz en düşük TLS sürümünü seçin. Bu ayar yalnızca gelen çağrıları denetler.

İşlem tamamlandığında, uygulamanız daha düşük TLS sürümleriyle tüm bağlantıları reddeder.
TLS sonlandırmayı işleme
Bu App Service, ağ yük dengecilerde TLS sonlandırması gerçekleşir, bu nedenle tüm HTTPS istekleri şifrelenmemiş HTTP istekleri olarak uygulamanıza erişer. Uygulama mantığının kullanıcı isteklerinin şifrelenir olup olmadığını denetlemesi gerekirse üst bilgisi X-Forwarded-Proto incelenir.
Linux Node.js yapılandırma kılavuzu gibi dile özgü yapılandırma kılavuzları, uygulama kodunda bir HTTPS oturumunu algılamayı gösterir.
Sertifika bağlamayı yenileme
Not
Satın aldığınız bir App Service yenilemek için bkz. Dışarı aktarma (App Service) sertifikası. App Service sertifikaları otomatik olarak yenilenir ve bağlama otomatik olarak eşitlenir.
Süresi dolan bir sertifikayı değiştirmek için, sertifika bağlamasını yeni sertifikayla güncelleştirmeniz kullanıcı deneyimini olumsuz etkileyebilir. Örneğin, bağlama IP tabanlı olsa bile bir bağlamayı silebilirsiniz. Bu, zaten IP tabanlı bağlamada yer alan bir sertifikayı yenilerken özellikle önemlidir. Uygulamanın IP adresi değişikliğini önlemek ve uygulamanın kapalı kalma süresini önlemek için şu adımları sırasıyla izleyin:
- Yeni sertifikayı karşıya yükleyin.
- Mevcut (süresi dolan) sertifikayı silmeden yeni sertifikayı aynı özel etki alanına bağlayın. Bu eylem, mevcut sertifikayı kaldırmak yerine bağlamanın yerini almaktadır.
- Mevcut sertifikayı silin.
Betiklerle otomatikleştirme
Azure CLI
#!/bin/bash
fqdn=<replace-with-www.{yourdomain}>
pfxPath=<replace-with-path-to-your-.PFX-file>
pfxPassword=<replace-with-your=.PFX-password>
resourceGroup=myResourceGroup
webappname=mywebapp$RANDOM
# Create a resource group.
az group create --location westeurope --name $resourceGroup
# Create an App Service plan in Basic tier (minimum required by custom domains).
az appservice plan create --name $webappname --resource-group $resourceGroup --sku B1
# Create a web app.
az webapp create --name $webappname --resource-group $resourceGroup \
--plan $webappname
echo "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
read -p "Press [Enter] key when ready ..."
# Before continuing, go to your DNS configuration UI for your custom domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname "www" and point it your web app's default domain name.
# Map your prepared custom domain name to the web app.
az webapp config hostname add --webapp-name $webappname --resource-group $resourceGroup \
--hostname $fqdn
# Upload the SSL certificate and get the thumbprint.
thumbprint=$(az webapp config ssl upload --certificate-file $pfxPath \
--certificate-password $pfxPassword --name $webappname --resource-group $resourceGroup \
--query thumbprint --output tsv)
# Binds the uploaded SSL certificate to the web app.
az webapp config ssl bind --certificate-thumbprint $thumbprint --ssl-type SNI \
--name $webappname --resource-group $resourceGroup
echo "You can now browse to https://$fqdn"
PowerShell
$fqdn="<Replace with your custom domain name>"
$pfxPath="<Replace with path to your .PFX file>"
$pfxPassword="<Replace with your .PFX password>"
$webappname="mywebapp$(Get-Random)"
$location="West Europe"
# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $location
# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free
# Create a web app.
New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname
Write-Host "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Read-Host "Press [Enter] key when ready ..."
# Before continuing, go to your DNS configuration UI for your custom domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname "www" and point it your web app's default domain name.
# Upgrade App Service plan to Basic tier (minimum required by custom SSL certificates)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic
# Add a custom domain name to the web app.
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")
# Upload and bind the SSL certificate to the web app.
New-AzWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled