App Service'te TLS/SSL bağlaması ile özel dns adı için güvenlik sağlama

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

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

Önkoşullar

Bağlamayı ekleme

Azure portalında:

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

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

  3. Özel etki alanının yanında 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 Sertifika'da bunu seçebilirsiniz. Aksi takdirde, Kaynak'taki seçimlerden birini kullanarak bir sertifika eklemeniz gerekir.

    • App Service Yönetilen Sertifikası Oluşturma - App Service'in seçtiğiniz etki alanı için yönetilen bir sertifika oluşturmasına izin verin. Bu seçenek en kolay seçenektir. Daha fazla bilgi için bkz . Ücretsiz yönetilen sertifika oluşturma.
    • App Service Sertifikasını İçeri Aktar - App Service Sertifikası'nda, seçtiğiniz etki alanı için satın aldığınız App Service sertifikasını 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 bağlantısındaki iş akışını izleyin.
    • Key Vault'tan içeri aktar - Anahtar kasası sertifikasını seç'i seçin ve iletişim kutusunda sertifikayı seçin.
  5. TLS/SSL türünde SNI SSL veya IP tabanlı SSL'yi seçin.

    • 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ı güvenliğini sağlamaya yardımcı olmasını sağlar. Çoğu modern tarayıcı (Microsoft Edge, 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ğlamaya yardımcı olmak için yalnızca bir TLS/SSL sertifikasına izin verir. Bağlamayı yapılandırdıktan sonra IP tabanlı SSL için kayıtları yeniden eşleme makalesindeki adımları izleyin.
      IP tabanlı SSL yalnızca Standart katmanda veya daha yüksek bir katmanda desteklenir.
  6. Yeni sertifika eklerken Doğrula'yı seçerek yeni sertifikayı doğrulayın.

  7. Ekle'yi seçin.

    İş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ında Güvenli durum, bir sertifikanın güvenlik sağladığı anlamına gelir, ancak App Service sertifikanın otomatik olarak imzalanmış veya süresi dolmuş olup olmadığını denetlemez. Örneğin, tarayıcıların hata veya uyarı göstermesine de neden olabilir.

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 HTTPS'yi Test Et'e atlayın.

Yapmanız gereken olası 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 bir SNI SSL bağlamanız <app-name>.azurewebsites.netvarsa, bunun yerine işaret etmek için herhangi bir CNAME eşlemesini sni.<app-name>.azurewebsites.net yeniden eşleyebilirsiniz. (Ön eki ekleyin sni .)

HTTPS’yi test etme

Uygulamanızın https://<your.custom.domain> görüntülendiğini doğrulamak için çeşitli tarayıcılarda adresine gidin.

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

Uygulama kodunuz üst bilgi aracılığıyla x-appservice-proto protokolü 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 dışarı aktarırken ara sertifikaları atlamış 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 adresinde değişiklik olmaması için şu adımları sırayla 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.

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

Varsayılan olarak App Service, HTTP isteklerinden HTTPS'ye yeniden yönlendirmeye 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'te TLS sonlandırmayı Nasıl yaparım? işleyebilir?

App Service'te TLS sonlandırmayük dengeleyicilerinde gerçekleşir, bu nedenle tüm HTTPS istekleri şifrelenmemiş HTTP istekleri olarak uygulamanıza ulaşır. Uygulama mantığınızın kullanıcı isteklerinin şifrelenip şifrelenmediğini denetlemesi gerekiyorsa üst bilgiyi inceleyin X-Forwarded-Proto .

Linux Node.js yapılandırma kılavuzu gibi dile özgü yapılandırma kılavuzları, uygulama kodunuzda bir HTTPS oturumunu algılamayı 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