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.
Önkoşullar
- App Service uygulamanızın ölçeğini desteklenen fiyatlandırma katmanlarından birine ayarlayın: Temel, Standart, Premium.
- Bir etki alanı adını uygulamanıza eşleyin veya Azure'da satın alıp yapılandırın.
Bağlamayı ekleme
Sol menüden App Services<>uygulama adı'nı> seçin.
Uygulamanızın sol gezinti bölmesinde Özel etki alanları'nı seçin.
Özel etki alanının yanında Bağlama ekle'yi seçin.
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.
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.
Yeni sertifika eklerken Doğrula'yı seçerek yeni sertifikayı doğrulayın.
Ekle'yi seçin.
İşlem tamamlandıktan sonra özel etki alanının TLS/SSL durumu Güvenli olarak değiştirilir.
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.net
varsa, bunun yerine işaret etmek için herhangi bir CNAME eşlemesinisni.<app-name>.azurewebsites.net
yeniden eşleyebilirsiniz. (Ön eki ekleyinsni
.)
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.
Uygulama kodunuz üst bilgi aracılığıyla x-appservice-proto
protokolü inceleyebilir. Üst bilgi veya https
değ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??
- Zorlamalı yeniden yönlendirmeyi HTTP'den HTTPS'ye devre dışı bırakabilir miyim?
- Uygulamanın en düşük TLS sürümlerini nasıl değiştirebilirim?
- App Service'te TLS sonlandırmayı Nasıl yaparım? işleyebilir?
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:
- 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.
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ırma ağ yü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