Mengamankan nama DNS kustom dengan pengikatan TLS/SSL di Azure App Service

Artikel ini menunjukkan kepada Anda cara mengamankan domain kustom di aplikasi Azure App Service Anda atau aplikasi fungsi dengan membuat pengikatan sertifikat. Setelah selesai, Anda dapat mengakses aplikasi Azure App Service di titik akhir https:// untuk nama DNS kustom Anda (misalnya, https://www.contoso.com).

Aplikasi web dengan sertifikat TLS/SSL kustom

Prasyarat

1. Tambahkan pengikatan

Di portal Azure:

  1. Dari menu sebelah kiri, pilihapp-name> App Services<>.

  2. Dari navigasi kiri aplikasi Anda, pilih Domain kustom

  3. Di samping domain kustom, pilih Tambahkan pengikatan

    Cuplikan layar yang menunjukkan cara meluncurkan dialog Tambahkan Pengikatan TLS/SSL.

  4. Jika aplikasi Anda sudah memiliki sertifikat untuk domain kustom yang dipilih, Anda dapat memilihnya di Sertifikat. Jika tidak, Anda harus menambahkan sertifikat menggunakan salah satu pilihan di Sumber.

    • Buat Sertifikat Terkelola App Service - Biarkan App Service membuat sertifikat terkelola untuk domain yang Anda pilih. Opsi ini adalah yang paling sederhana. Untuk informasi selengkapnya, lihat Membuat sertifikat terkelola gratis.
    • Impor Sertifikat App Service - Dalam Sertifikat App Service, pilih sertifikat App Service yang telah Anda beli untuk domain yang Anda pilih.
    • Unggah sertifikat (.pfx) - Ikuti alur kerja di Unggah sertifikat privat untuk mengunggah sertifikat PFX dari komputer lokal Anda dan tentukan kata sandi sertifikat.
    • Impor dari Key Vault - Pilih Pilih sertifikat brankas kunci dan pilih sertifikat dalam dialog.
  5. Dalam jenis TLS/SSL, pilih antara SNI SSL dan SSL berbasis IP.

    • SNI SSL: Beberapa pengikatan SNI SSL dapat ditambahkan. Opsi ini memungkinkan beberapa sertifikat TLS/SSL untuk mengamankan beberapa domain pada alamat IP yang sama. Sebagian besar browser modern (termasuk Internet Explorer, Chrome, Firefox, dan Opera) mendukung SNI (untuk informasi selengkapnya, lihat Indikasi Nama Server).
      • SSL berbasis IP: Hanya satu pengikatan IP SSL yang dapat ditambahkan. Opsi ini hanya memungkinkan satu sertifikat TLS/SSL untuk mengamankan alamat IP publik khusus. Setelah Mengonfigurasi pengikatan, ikuti langkah-langkah di 2. Memetakan ulang rekaman untuk SSL berbasis IP.
        IP SSL hanya didukung di tingkat Dasar atau yang lebih tinggi.
  6. Saat menambahkan sertifikat baru, validasi sertifikat baru dengan memilih Validasi.

  7. Pilih Tambahkan.

    Setelah operasi selesai, status TLS/SSL domain kustom diubah menjadi Aman.

    Cuplikan layar memperlihatkan domain kustom yang diamankan oleh pengikatan sertifikat.

Catatan

Status Aman di domain Kustom berarti diamankan dengan sertifikat, tetapi Azure App Service tidak memeriksa apakah sertifikat ditandatangani sendiri atau kedaluwarsa, misalnya, yang juga dapat menyebabkan browser menunjukkan kesalahan atau peringatan.

2. Memetakan ulang rekaman untuk SSL berbasis IP

Langkah ini hanya diperlukan untuk SSL berbasis IP. Untuk pengikatan SNI SSL, lewati untuk Menguji HTTPS untuk domain kustom Anda.

Ada dua perubahan yang perlu Anda lakukan, berpotensi:

  • Secara default, aplikasi Anda menggunakan alamat IP publik bersama. Saat Anda mengikat sertifikat dengan IP SSL, Azure App Service membuat alamat IP baru, berdedikasi untuk aplikasi Anda. Jika Anda memetakan catatan A ke aplikasi, perbarui registri domain Anda dengan alamat IP baru khusus ini.

    Halaman domain Kustom aplikasi Anda diperbarui dengan alamat IP khusus yang baru. Salin alamat IP ini, lalu ulangi rekaman A ke alamat IP baru ini.

  • Jika Anda memiliki SNI SSL yang mengikat ke <app-name>.azurewebsites.net, petakan ulang pemetaan CNAME untuk menunjuk ke sni.<app-name>.azurewebsites.net sebagai gantinya (tambahkan awalan sni).

3. Uji HTTPS

Di berbagai browser, telusuri https://<your.custom.domain> untuk memverifikasi bahwa ia melayani aplikasi Anda.

Cuplikan layar memperlihatkan contoh penjelajahan ke domain kustom Anda dengan URL contoso.com yang disorot.

Kode aplikasi Anda dapat memeriksa protokol melalui header "x-appservice-proto". Header memiliki nilai http atau https.

Catatan

Jika aplikasi memberi Anda kesalahan validasi sertifikat, Anda mungkin menggunakan sertifikat yang ditandatangani sendiri.

Jika bukan itu masalahnya, Anda mungkin telah meninggalkan sertifikat menengah saat mengekspor sertifikat Anda ke file PFX.

Tanya jawab umum

Bagaimana cara memastikan bahwa alamat IP aplikasi tidak berubah saat saya membuat perubahan pada pengikatan sertifikat?

Alamat IP masuk Anda dapat berubah saat Anda menghapus pengikatan, bahkan jika pengikatan tersebut adalah IP SSL. Ini sangat penting ketika Anda memperbarui sertifikat yang sudah ada dalam pengikatan IP SSL. Untuk menghindari perubahan alamat IP aplikasi Anda, ikuti langkah-langkah berikut secara berurutan:

  1. Mengunggah sertifikat baru.
  2. Ikat sertifikat baru ke domain kustom yang Anda inginkan tanpa menghapus sertifikat lama. Tindakan ini menggantikan pengikatan alih-alih menghapus yang lama.
  3. Menghapus sertifikat lama.

Dapatkah saya menonaktifkan pengalihan paksa dari HTTP ke HTTPS?

Secara default, App Service memaksa pengalihan dari permintaan HTTP ke HTTPS. Untuk menonaktifkan perilaku ini, lihat Mengonfigurasi pengaturan umum.

Bagaimana cara mengubah versi TLS minimum untuk aplikasi?

Aplikasi Anda memungkinkan TLS 1.2 secara default, yang merupakan level TLS yang direkomendasikan berdasarkan standar industri, seperti PCI DSS. Untuk menerapkan versi TLS yang berbeda, lihat Mengonfigurasi pengaturan umum.

Bagaimana cara menangani penghentian TLS di App Service?

Di Azure App Service, penghentian TLS terjadi di penyeimbang muatan jaringan, sehingga semua permintaan HTTPS menjangkau aplikasi Anda sebagai permintaan HTTP yang tidak terenkripsi. Jika logika aplikasi Anda perlu memeriksa apakah permintaan pengguna dienkripsi atau tidak, periksa header X-Forwarded-Proto.

Panduan konfigurasi spesifik bahasa, seperti panduan konfigurasi Linux Node.js, menunjukkan kepada Anda cara mendeteksi sesi HTTPS dalam kode aplikasi Anda.

Mengotomatiskan dengan skrip

Azure CLI

Mengikat sertifikat TLS/SSL kustom ke aplikasi web

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

Sumber daya lainnya