Azure App Service'da TLS/SSL bağlaması ile özel bir DNS adının güvenliğini sağlama

Bu makalede, bir sertifika bağlaması oluşturarak App Service uygulamanızda veya işlev uygulamanızdaözel etki alanının güvenliğini sağlama işlemi gösterilir. İşiniz bittiğinde, özel DNS adınızın uç noktasından (örneğin, https://www.contoso.com) App Service uygulamanıza https:// erişebilirsiniz.

Özel TLS/SSL sertifikasına sahip web uygulaması

Önkoşullar

1. Bağlamayı ekleyin

Azure portal:

  1. Sol menüden App Services><uygulama adı'nı> seçin.

  2. Uygulamanızın sol gezinti bölmesinden Özel etki alanları'nı seçin

  3. Özel etki alanının yanındaki Bağlama ekle'yi seçin

    TLS/SSL Bağlama Ekle iletişim kutusunun nasıl başlatıldığını gösteren ekran görüntüsü.

  4. Uygulamanızın seçili özel etki alanı için zaten bir sertifikası varsa sertifikayı Sertifika'da seçebilirsiniz. Aksi takdirde, Kaynak'taki seçimlerden birini kullanarak bir sertifika eklemeniz gerekir.

    • App Service Yönetilen Sertifika Oluşturma - Seçili etki alanınız için App Service yönetilen sertifika oluşturmasına izin verin. Bu seçenek en basit seçenektir. Daha fazla bilgi için bkz. Ücretsiz yönetilen sertifika oluşturma.
    • App Service Sertifikasını İçeri Aktar - App Service Sertifika'da, seçtiğiniz etki alanı için satın aldığınız App Service sertifikayı seçin.
    • Sertifikayı karşıya yükleme (.pfx) - Yerel makinenizden bir PFX sertifikası yüklemek ve sertifika parolasını belirtmek için Özel sertifika yükleme'deki iş akışını izleyin.
    • Key Vault'den içeri aktar - Anahtar kasası sertifikasını seç'i seçin ve iletişim kutusunda sertifikayı seçin.
  5. TLS/SSL türündeSNI SSL ile IP tabanlı SSL arasında seçim yapın.

    • SNI SSL: Birden çok SNI SSL bağlaması eklenebilir. Bu seçenek, birden çok TLS/SSL sertifikasının aynı IP adresinde birden çok etki alanını güvenli olmasını sağlar. Çoğu modern tarayıcı (Internet Explorer, Chrome, Firefox ve Opera dahil) SNI'yi destekler (daha fazla bilgi için bkz . Sunucu Adı Göstergesi).
      • IP tabanlı SSL: Yalnızca bir IP SSL bağlaması eklenebilir. Bu seçenek, ayrılmış bir genel IP adresinin güvenliğini sağlamak için yalnızca bir TLS/SSL sertifikasına izin verir. Bağlamayı yapılandırdıktan sonra 2' deki adımları izleyin . IP tabanlı SSL için kayıtları yeniden eşleme.
        IP SSL yalnızca Temel katmanda veya daha yüksek bir katmanda desteklenir.
  6. Yeni bir sertifika eklerken Doğrula'yı seçerek yeni sertifikayı doğrulayın.

  7. Add (Ekle) seçeneğini belirleyin.

    İşlem tamamlandıktan sonra özel etki alanının TLS/SSL durumu Güvenli olarak değiştirilir.

    Sertifika bağlaması tarafından güvenliği sağlanan özel etki alanını gösteren ekran görüntüsü.

Not

Özel etki alanlarındakiGüvenli durum, sertifikayla güvenli hale getirildiği anlamına gelir, ancak App Service sertifikanın otomatik olarak imzalanmış veya süresi dolmuş olup olmadığını denetlemez. Bu durum tarayıcıların hata veya uyarı göstermesine de neden olabilir.

2. IP tabanlı SSL için kayıtları yeniden eşleme

Bu adım yalnızca IP tabanlı SSL için gereklidir. SNI SSL bağlaması için özel etki alanınız için HTTPS'yi test etme bölümüne atlayın.

Yapmanız gereken iki değişiklik vardır:

  • Varsayılan olarak, uygulamanız paylaşılan bir genel IP adresi kullanır. BIR sertifikayı IP SSL ile bağladığınızda App Service uygulamanız için yeni, ayrılmış bir IP adresi oluşturur. Uygulamanıza bir A kaydı eşlediyseniz, etki alanı kayıt defterinizi bu yeni, ayrılmış IP adresiyle güncelleştirin.

    Uygulamanızın Özel etki alanı sayfası yeni, ayrılmış IP adresiyle güncelleştirilir. Bu IP adresini kopyalayın, ardından A kaydını bu yeni IP adresiyle yeniden eşleyin .

  • için <app-name>.azurewebsites.netbir SNI SSL bağlamanız varsa, bunun yerine işaret sni.<app-name>.azurewebsites.net edecek şekilde herhangi bir CNAME eşlemesini yeniden eşleyebilirsiniz (öneki sni ekleyin).

3. HTTPS'i test etme

Çeşitli tarayıcılarda, uygulamanızın hizmet ettiğini doğrulamak için adresine gidin https://<your.custom.domain> .

contoso.com URL'sinin vurgulandığı özel etki alanınıza göz atma örneğini gösteren ekran görüntüsü.

Uygulama kodunuz protokolü "x-appservice-proto" üst bilgisi aracılığıyla inceleyebilir. Üst bilgi veya httpsdeğerine http sahiptir.

Not

Uygulamanız size sertifika doğrulama hataları veriyorsa, büyük olasılıkla otomatik olarak imzalanan bir sertifika kullanıyorsunuz demektir.

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.

Sık sorulan sorular

Sertifika bağlamada değişiklik yaptığımda uygulamanın IP adresinin değişmediğinden emin Nasıl yaparım??

Bağlama IP SSL olsa bile, bir bağlamayı sildiğinizde gelen IP adresiniz değişebilir. Bu, özellikle zaten bir IP SSL bağlamasında olan bir sertifikayı yenilediğinizde önemlidir. Uygulamanızın IP adresinin değişmesini önlemek için şu adımları sırasıyla izleyin:

  1. Yeni sertifikayı karşıya yükleyin.
  2. Eskisini silmeden yeni sertifikayı istediğiniz özel etki alanına bağlayın. Bu eylem, eskisini kaldırmak yerine bağlamayı değiştirir.
  3. Eski sertifikayı silin.

HTTP'den HTTPS'ye zorlamalı yeniden yönlendirmeyi devre dışı bırakabilir miyim?

Varsayılan olarak, App Service HTTP isteklerinden HTTPS'ye yeniden yönlendirmeyi zorlar. Bu davranışı devre dışı bırakmak için bkz . Genel ayarları yapılandırma.

Uygulamanın en düşük TLS sürümlerini nasıl değiştirebilirim?

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 zorunlu kılmak için bkz . Genel ayarları yapılandırma.

App Service'da TLS sonlandırmayı Nasıl yaparım? işleyebilir?

App Service'da TLS sonlandırma ağ yük dengeleyicilerinde gerçekleşir, bu nedenle tüm HTTPS istekleri uygulamanıza şifrelenmemiş HTTP istekleri olarak ulaşır. Uygulama mantığınızın kullanıcı isteklerinin şifrelenmiş olup olmadığını denetlemesi gerekiyorsa X-Forwarded-Proto üst bilgisini inceleyin.

Linux Node.js yapılandırma kılavuzu gibi dile özgü yapılandırma kılavuzları, uygulama kodunuzda bir HTTPS oturumunu nasıl algılayabileceğinizi gösterir.

Betiklerle otomatikleştirme

Azure CLI

Bir web uygulamasına özel TLS/SSL sertifikası bağlama

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.
$webapp = New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname

Write-Host "Sign in to your domain provider's website and configure the following records:"
Write-Host "A CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Write-Host "A TXT record that maps asuid.$fqdn to the domain verification ID $($webapp.CustomDomainVerificationId)"
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

Diğer kaynaklar