Öğretici: Karşıya yükleme ve Azure App Service için SSL sertifikası bağlamaTutorial: Upload and bind SSL certificates to Azure App Service

Azure App Service, yüksek oranda ölçeklenebilen, kendi kendine düzeltme eki uygulayan bir web barındırma hizmeti sunar.Azure App Service provides a highly scalable, self-patching web hosting service. Bu öğreticide, App Service'te özel etki alanı bir güvenilir sertifika yetkilisinden satın aldığınız bir sertifika ile güvenli hale getirmeyi gösterir.This tutorial shows you how to secure a custom domain in App Service with a certificate that you purchased from a trusted certificate authority. Ayrıca, herhangi bir özel yükleme işlemini gösterir ve uygulama ihtiyaçlarınızı ortak sertifikalar.It also shows you how to upload any private and public certificates your app needs. İşlemi tamamladığınızda, uygulamanıza özel DNS etki alanınızın HTTPS uç noktasında erişmek mümkün olacaktır.When you're finished, you'll be able to access your app at the HTTPS endpoint of your custom DNS domain.

Özel SSL sertifikası ile web uygulaması

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:In this tutorial, you learn how to:

  • Uygulamanızın fiyatlandırma katmanını yükseltmeUpgrade your app's pricing tier
  • Bir sertifika ile özel bir etki alanını güvenli hale getirmeSecure a custom domain with a certificate
  • Özel bir sertifika yükleyinUpload a private certificate
  • Bir ortak sertifika karşıya yüklemeUpload a public certificate
  • Sertifikaları yenilemeRenew certificates
  • HTTPS zorlamaEnforce HTTPS
  • TLS 1.1/1.2 zorlamaEnforce TLS 1.1/1.2
  • TLS yönetimini betiklerle otomatikleştirmeAutomate TLS management with scripts

ÖnkoşullarPrerequisites

Bu öğreticiyi tamamlamak için:To complete this tutorial:

Özel bir sertifika hazırlamaPrepare a private certificate

Bir etki alanını güvenli hale getirmek için sertifikanın aşağıdaki gereksinimleri karşılaması gerekir:To secure a domain, the certificate must meet all the following requirements:

  • Sunucu kimlik doğrulaması için yapılandırılmışConfigured for Server Authentication
  • Güvenilir bir sertifika yetkilisi tarafından imzalanmasıSigned by a trusted certificate authority
  • Parola korumalı bir PFX dosyası olarak dışarı aktarılmasıExported as a password-protected PFX file
  • En az 2048 bit uzunluğunda özel anahtar içermesiContains private key at least 2048 bits long
  • Sertifika zincirindeki tüm ara sertifikaları içermesiContains all intermediate certificates in the certificate chain

İpucu

Özel bir SSL sertifikası almanız gerekiyorsa, Azure Portalı'nda doğrudan almak ve uygulamanıza içeri aktarabilirsiniz.If you need to get a custom SSL certificate, you can get one in the Azure portal directly and import it to your app. App Service Sertifikaları öğreticisini takip edin.Follow the App Service Certificates tutorial.

Not

Eliptik Eğri Şifrelemesi (ECC) sertifikaları, App Service ile birlikte çalışabilir ancak bu makalenin konusu değildir.Elliptic Curve Cryptography (ECC) certificates can work with App Service but are not covered by this article. ECC sertifikaları oluşturmaya ilişkin tam adımlar için sertifika yetkilinizle birlikte çalışın.Work with your certificate authority on the exact steps to create ECC certificates.

Sertifika, sertifika sağlayıcınızdan edindikten sonra App Service için hazır hale getirmek için bu bölümdeki adımları izleyin.Once you obtain a certificate from your certificate provider, follow the steps in this section to make it ready for App Service.

Ara sertifikaları birleştirmeMerge intermediate certificates

Sertifika yetkiliniz size sertifika zincirinde birden çok sertifika verirse, sertifikaları sırayla birleştirmeniz gerekir.If your certificate authority gives you multiple certificates in the certificate chain, you need to merge the certificates in order.

Bunu yapmak için, aldığınız her sertifikayı bir metin düzenleyicisinde açın.To do this, open each certificate you received in a text editor.

Birleştirilmiş sertifika için mergedcertificate.crt adlı bir dosya oluşturun.Create a file for the merged certificate, called mergedcertificate.crt. Bir metin düzenleyicisinde her bir sertifikanın içeriğini bu dosyaya kopyalayın.In a text editor, copy the content of each certificate into this file. Sertifikalarınızın sırası, sertifikanızla başlayıp kök sertifika ile sona ererek sertifika zincirindeki sırayla aynı olmalıdır.The order of your certificates should follow the order in the certificate chain, beginning with your certificate and ending with the root certificate. Aşağıdaki örneğe benzer şekilde görünür:It looks like the following example:

-----BEGIN CERTIFICATE-----
<your entire Base64 encoded SSL certificate>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<The entire Base64 encoded intermediate certificate 1>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<The entire Base64 encoded intermediate certificate 2>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<The entire Base64 encoded root certificate>
-----END CERTIFICATE-----

Sertifikayı PFX dosyasına aktarmaExport certificate to PFX

Birleştirilmiş SSL sertifikanızı sertifika isteğinizi oluşturmak için kullanılan özel anahtarla dışarı aktarın.Export your merged SSL certificate with the private key that your certificate request was generated with.

Sertifika isteğinizi OpenSSL kullanarak oluşturduysanız bir özel anahtar dosyası oluşturduğunuz anlamına gelir.If you generated your certificate request using OpenSSL, then you have created a private key file. Sertifikanızı PFX dosyasına aktarmak için aşağıdaki komutu çalıştırın.To export your certificate to PFX, run the following command. <private-key-file> ve <merged-certificate-file> yer tutucularını özel anahtarınızın ve birleştirdiğiniz sertifika dosyasının yollarıyla değiştirin.Replace the placeholders <private-key-file> and <merged-certificate-file> with the paths to your private key and your merged certificate file.

openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>  

Sorulduğunda bir dışarı aktarma parolası tanımlayın.When prompted, define an export password. Bu parolayı daha sonra SSL sertifikanızı App Service’e yüklerken kullanacaksınız.You'll use this password when uploading your SSL certificate to App Service later.

Sertifika isteğinizi oluşturmak için IIS veya Certreq.exe kullandıysanız, sertifikayı yerel makinenize yükleyin ve sonra sertifikayı PFX’e aktarın.If you used IIS or Certreq.exe to generate your certificate request, install the certificate to your local machine, and then export the certificate to PFX.

App Service sertifika artık hazır karşıya yükleme, demektir.You're now ready upload the certificate to App Service.

Web uygulamanızı hazırlamaPrepare your web app

Özel bir SSL sertifikasını (üçüncü taraf sertifika veya App Service sertifikası) web uygulamanıza bağlamak için App Service planınız Temel, Standart, Premium veya Yalıtılmış katmanında olmalıdır.To bind a custom SSL certificate (a third-party certificate or App Service certificate) to your web app, your App Service plan must be in the Basic, Standard, Premium, or Isolated tier. Bu adımda, web uygulamanızın desteklenen bir fiyatlandırma katmanında olduğundan emin olacaksınız.In this step, you make sure that your web app is in the supported pricing tier.

Azure'da oturum açmaLog in to Azure

Azure portalı açın.Open the Azure portal.

Sol menüden Uygulama Hizmetleri'ne ve ardından web uygulamanızın adına tıklayın.From the left menu, click App Services, and then click the name of your web app.

Web uygulaması seçme

Web uygulamanızın yönetim sayfasına geldiniz.You have landed in the management page of your web app.

Fiyatlandırma katmanını denetlemeCheck the pricing tier

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.In the left-hand navigation of your web app page, scroll to the Settings section and select Scale up (App Service plan).

Ölçeği artır menüsü

Web uygulamanızın F1 veya D1 katmanında olmadığından emin olun.Check to make sure that your web app is not in the F1 or D1 tier. Web uygulamanızın geçerli katmanı koyu mavi bir kutuyla vurgulanır.Your web app's current tier is highlighted by a dark blue box.

Fiyatlandırma katmanını denetleyin

F1 veya D1 katmanında özel SSL desteklenmez.Custom SSL is not supported in the F1 or D1 tier. Ölçeği artırmanız gerekirse sonraki bölümde verilen adımları izleyin.If you need to scale up, follow the steps in the next section. Aksi halde, kapatmak ölçeği sayfasında ve atlama App Service planınızın ölçeğini bölümü.Otherwise, close the Scale up page and skip the Scale up your App Service plan section.

App Service planınızın ölçeğini artırmaScale up your App Service plan

Ücretsiz olmayan katmanlardan birini seçin (B1, B2, B3, veya Üretim kategorisindeki herhangi bir katmanı).Select any of the non-free tiers (B1, B2, B3, or any tier in the Production category). Ek seçenekler için Ek seçeneklere bakın’a tıklayın.For additional options, click See additional options.

Uygula'ya tıklayın.Click Apply.

Fiyatlandırma katmanı seçme

Aşağıdaki bildirimi gördüğünüzde, ölçeklendirme işlemi tamamlanmıştır.When you see the following notification, the scale operation is complete.

Ölçek artırma bildirimi

Özel bir etki alanını güvenli hale getirmeSecure a custom domain

İpucu

Özel bir SSL sertifikası almanız gerekiyorsa, Azure Portalı'nda doğrudan almak ve uygulamanıza bağlayın.If you need to get a custom SSL certificate, you can get one in the Azure portal directly and bind it to your app. App Service Sertifikaları öğreticisini takip edin.Follow the App Service Certificates tutorial.

Güvenli hale getirmek için bir özel etki alanı bir üçüncü taraf sertifika ile karşıya yüklediğiniz özel sertifika hazır ve ardından özel etki bağlama, ancak App Service, işlemi basitleştirir.To secure a custom domain with a third-party certificate, you upload the prepared private certificate and then bind it to the custom domain, but App Service simplifies the process for you. Aşağıdaki adımları uygulayın:Do the following steps:

Tıklayın özel etki alanları uygulamanızın sol gezinti bölmesinde, ardından bağlama Ekle istediğiniz güvenliğini sağlamak için etki alanı için.Click Custom domains in the left navigation of your app, then click Add binding for the domain you want to secure. Görmüyorsanız bağlama Ekle bir etki alanı için sonra zaten güvenlidir ve olmalıdır bir güvenli SSL durumu.If you don't see Add binding for a domain, then it's already secure and should have a Secure SSL state.

Etki bağlama Ekle

Sertifikayı Karşıya Yükle’ye tıklayın.Click Upload Certificate.

PFX Sertifika Dosyası’nda PFX dosyanızı seçin.In PFX Certificate File, select your PFX file. Sertifika parolası alanına PFX dosyasını dışa aktardığınızda oluşturduğunuz parolayı yazın.In Certificate password, type the password that you created when you exported the PFX file.

Karşıya Yükle'ye tıklayın.Click Upload.

Etki alanı için sertifikayı karşıya yükleyin

Sertifikanızı karşıya yüklemek ve SSL bağlamaları iletişim başlatmak, Azure için bekleyin.Wait for Azure to upload your certificate and launch the SSL bindings dialog.

SSL bağlamaları iletişim kutusunda, karşıya yüklediğiniz sertifikaya ve SSL türü seçin ve ardından bağlaması Ekle.In the SSL bindings dialog, select the certificate you uploaded and the SSL type, and then click Add Binding.

Not

Aşağıdaki SSL türleri desteklenir:The following SSL types are supported:

  • SNI tabanlı SSL -birden fazla SNI tabanlı SSL bağlaması eklenebilir.SNI-based SSL - Multiple SNI-based SSL bindings may be added. Bu seçenek, aynı IP adresi üzerinde birden fazla SSL sertifikası ile birden fazla etki alanının güvenliğini sağlamaya olanak tanır.This option allows multiple SSL certificates to secure multiple domains on the same IP address. Çoğu modern tarayıcı (Internet Explorer, Chrome, Firefox ve Opera dahil) SNI’yi destekler (daha kapsamlı tarayıcı desteği bilgilerini Sunucu Adı Belirtimi bölümünde bulabilirsiniz).Most modern browsers (including Internet Explorer, Chrome, Firefox, and Opera) support SNI (find more comprehensive browser support information at Server Name Indication).
  • IP tabanlı SSL - Yalnızca bir adet IP tabanlı SSL bağlaması eklenebilir.IP-based SSL - Only one IP-based SSL binding may be added. Bu seçenek yalnızca bir SSL sertifikası ile ayrılmış bir genel IP adresinin güvenliğini sağlamaya olanak tanır.This option allows only one SSL certificate to secure a dedicated public IP address. Birden fazla etki alanının güvenliğini sağlamak için tümünün güvenliğini aynı SSL sertifikası ile sağlamanız gerekir.To secure multiple domains, you must secure them all using the same SSL certificate. SSL bağlaması için geleneksel seçenek budur.This is the traditional option for SSL binding.

Etki alanı için SSL bağlama

Etki alanının SSL durumu için artık değiştirilmelidir güvenli.The domain's SSL state should now be changed to Secure.

Etki alanı güvenliği

Not

A güvenli içinde durum özel etki alanları sertifikayı otomatik olarak imzalanan veya süresi dolduğunda, örneğin, ayrıca bir sertifika ile güvenli olduğundan, ancak değil App Service denetleyin anlamına gelir neden tarayıcılar bir hata veya uyarı gösterir.A Secure state in the Custom domains means that it is secured with a certificate, but App Service doesn't check if the certificate is self-signed or expired, for example, which can also cause browsers to show an error or warning.

IP SSL için A kaydını yeniden eşlemeRemap A record for IP SSL

Uygulamanızda IP tabanlı SSL kullanmıyorsanız, atlamak özel etki alanınız için Test HTTPS.If you don't use IP-based SSL in your app, skip to Test HTTPS for your custom domain.

Varsayılan olarak, uygulamanızı paylaşılan bir genel IP adresini kullanır.By default, your app uses a shared public IP address. Bir sertifikayı IP tabanlı SSL ile bağladığınızda App Service uygulamanız için yeni ve ayrılmış bir IP adresi oluşturur.When you bind a certificate with IP-based SSL, App Service creates a new, dedicated IP address for your app.

Uygulamanız için bir A kaydını eşlediyseniz, etki alanı kaydınızı bu yeni ve ayrılmış IP adresi ile güncelleştirin.If you have mapped an A record to your app, update your domain registry with this new, dedicated IP address.

Uygulamanızın özel etki alanı sayfası, yeni ve ayrılmış IP adresi ile güncelleştirilir.Your app's Custom domain page is updated with the new, dedicated IP address. Bu IP adresini kopyalayın, ardından bu yeni IP adresine A kaydını yeniden eşleyin.Copy this IP address, then remap the A record to this new IP address.

HTTPS’yi test etmeTest HTTPS

Şimdi yapılması gereken tek şey, HTTPS’nin özel etki alanınız için çalıştığından emin olmaktır.All that's left to do now is to make sure that HTTPS works for your custom domain. Çeşitli tarayıcılarda göz atın https://<your.custom.domain> uygulamanızı vermediğini görün.In various browsers, browse to https://<your.custom.domain> to see that it serves up your app.

Azure uygulamasına portal gezintisi

Not

Uygulamanızı sağlıyorsa, sertifika doğrulama hataları, büyük olasılıkla otomatik olarak imzalanan bir sertifika kullanıyorsunuz.If your app gives you certificate validation errors, you're probably using a self-signed certificate.

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.If that's not the case, you may have left out intermediate certificates when you export your certificate to the PFX file.

Sertifikaları yenilemeRenew certificates

Bir bağlamayı sildiğinizde, bu bağlama IP tabanlı olsa bile gelen IP adresiniz değişebilir.Your inbound IP address can change when you delete a binding, even if that binding is IP-based. Bu, zaten IP tabanlı bağlamada yer alan bir sertifikayı yenilerken özellikle önemlidir.This is especially important when you renew a certificate that's already in an IP-based binding. Uygulamanızın IP adresinin değişmesini önlemek için şu adımları sırasıyla izleyin:To avoid a change in your app's IP address, follow these steps in order:

  1. Yeni sertifikayı karşıya yükleyin.Upload the new certificate.
  2. Eskisini silmeden yeni sertifikayı istediğiniz özel etki alanına bağlayın.Bind the new certificate to the custom domain you want without deleting the old one. Bu eylem, eskisini kaldırmak yerine bağlamayı değiştirir.This action replaces the binding instead of removing the old one.
  3. Eski sertifikayı silin.Delete the old certificate.

HTTPS zorlamaEnforce HTTPS

Varsayılan olarak, herkes HTTP kullanarak uygulamanıza erişmeye devam edebilirsiniz.By default, anyone can still access your app using HTTP. Tüm HTTPS isteklerini HTTP bağlantı noktasına yeniden yönlendirebilirsiniz.You can redirect all HTTP requests to the HTTPS port.

Uygulaması sayfanızın sol gezinti bölmesinde seçin SSL ayarları.In your app page, in the left navigation, select SSL settings. Ardından Yalnızca HTTPS menüsünde Açık’ı seçin.Then, in HTTPS Only, select On.

HTTPS zorlama

İşlem tamamlandığında, uygulamanıza işaret eden HTTP URL'lerinden herhangi birine gidin.When the operation is complete, navigate to any of the HTTP URLs that point to your app. Örneğin:For example:

  • http://<app_name>.azurewebsites.net
  • http://contoso.com
  • http://www.contoso.com

TLS sürümlerini zorlamaEnforce TLS versions

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.Your app allows TLS 1.2 by default, which is the recommended TLS level by industry standards, such as PCI DSS. Farklı TLS sürümlerini zorlamak için aşağıdaki adımları uygulayın:To enforce different TLS versions, follow these steps:

Uygulaması sayfanızın sol gezinti bölmesinde seçin SSL ayarları.In your app page, in the left navigation, select SSL settings. Ardından TLS sürümü’nde istediğiniz en düşük TLS sürümünü seçin.Then, in TLS version, select the minimum TLS version you want. Bu ayar yalnızca gelen çağrıları denetler.This setting controls the inbound calls only.

TLS 1.1 veya 1.2’yi zorlama

İşlem tamamlandığında, uygulamanız daha düşük TLS sürümleriyle tüm bağlantıları reddeder.When the operation is complete, your app rejects all connections with lower TLS versions.

Betiklerle otomatikleştirmeAutomate with scripts

Kullanarak uygulamanızın, betiklerle SSL bağlamaları otomatikleştirebilirsiniz Azure CLI veya Azure PowerShell.You can automate SSL bindings for your app with scripts, using the Azure CLI or Azure PowerShell.

Azure CLIAzure CLI

Aşağıdaki komut, dışarı aktarılan bir PFX dosyasını karşıya yükler ve parmak izini alır.The following command uploads an exported PFX file and gets the thumbprint.

thumbprint=$(az webapp config ssl upload \
    --name <app-name> \
    --resource-group <resource-group-name> \
    --certificate-file <path-to-PFX-file> \
    --certificate-password <PFX-password> \
    --query thumbprint \
    --output tsv)

Aşağıdaki komut, önceki komutta alınan parmak izini kullanarak SNI tabanlı bir SSL bağlaması ekler.The following command adds an SNI-based SSL binding, using the thumbprint from the previous command.

az webapp config ssl bind \
    --name <app-name> \
    --resource-group <resource-group-name>
    --certificate-thumbprint $thumbprint \
    --ssl-type SNI \

Aşağıdaki komut TLS için minimum 1.2 sürümünü zorunlu tutar.The following command enforces minimum TLS version of 1.2.

az webapp config set \
    --name <app-name> \
    --resource-group <resource-group-name>
    --min-tls-version 1.2

Azure PowerShellAzure PowerShell

Not

Bu makale yeni Azure PowerShell az modülünü kullanacak şekilde güncelleştirilmiştir.This article has been updated to use the new Azure PowerShell Az module. AzureRM modülünü kullanmaya devam edebilirsiniz, bu da en az Aralık 2020 ' e kadar hata düzeltmeleri almaya devam edecektir.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Yeni az Module ve Azurerd uyumluluğu hakkında daha fazla bilgi edinmek için, bkz. new Azure PowerShell konusuna giriş az Module.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az Module yükleme yönergeleri için bkz. yükleme Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Aşağıdaki komut, dışarı aktarılan bir PFX dosyasını karşıya yükler ve SNI tabanlı bir SSL bağlaması ekler.The following command uploads an exported PFX file and adds an SNI-based SSL binding.

New-AzWebAppSSLBinding `
    -WebAppName <app_name> `
    -ResourceGroupName <resource_group_name> `
    -Name <dns_name> `
    -CertificateFilePath <path_to_PFX_file> `
    -CertificatePassword <PFX_password> `
    -SslState SniEnabled

Kodunuzda sertifikaları kullanUse certificates in your code

Uzak kaynaklara bağlanmak uygulamanız gereken ve uzak kaynak sertifika doğrulaması gerektiren, uygulamanıza genel veya özel sertifikaları karşıya yükleyebilirsiniz.If your app needs to connect to remote resources, and the remote resource requires certificate authentication, you can upload public or private certificates to your app. Bu sertifikalar uygulamanızda herhangi bir özel etki bağlama gerek yoktur.You don't need to bind these certificates to any custom domain in your app. Daha fazla bilgi için bkz. Azure App Service'teki uygulama kodunuzda SSL sertifikası kullanma.For more information, see Use an SSL certificate in your application code in Azure App Service.

Sonraki adımlarNext steps

Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:In this tutorial, you learned how to:

  • Uygulamanızın fiyatlandırma katmanını yükseltmeUpgrade your app's pricing tier
  • Özel sertifikanızı App Service'e bağlamaBind your custom certificate to App Service
  • Sertifikaları yenilemeRenew certificates
  • HTTPS zorlamaEnforce HTTPS
  • TLS 1.1/1.2 zorlamaEnforce TLS 1.1/1.2
  • TLS yönetimini betiklerle otomatikleştirmeAutomate TLS management with scripts

Azure Content Delivery Network kullanımı hakkında bilgi almak için sonraki öğreticiye ilerleyin.Advance to the next tutorial to learn how to use Azure Content Delivery Network.

Daha fazla bilgi için bkz. Azure App Service'teki uygulama kodunuzda SSL sertifikası kullanma.For more information, see Use an SSL certificate in your application code in Azure App Service.