Hasilkan sertifikat azure application gateway yang ditandatangani sendiri dengan CA akar kustom

Application Gateway v2 SKU memperkenalkan penggunaan Sertifikat Akar Tepercaya untuk memungkinkan koneksi TLS dengan server backend. Ketentuan ini menghapus penggunaan sertifikat autentikasi (sertifikat Daun individual) yang diperlukan dalam SKU v1. Sertifikat akar adalah sertifikat akar dengan format Base-64 yang dikodekan X.509(.CER) dari server sertifikat ujung belakang. Ini mengidentifikasi otoritas sertifikat akar (CA) yang mengeluarkan sertifikat server dan sertifikat server kemudian digunakan untuk komunikasi TLS/SSL.

Application Gateway mempercayai sertifikat situs web Anda secara default jika ditandatangani oleh CA terkenal (misalnya, GoDaddy atau DigiCert). Dalam hal ini, Anda tidak perlu secara eksplisit mengunggah sertifikat akar. Untuk info selengkapnya, lihat Gambaran Umum penghentian SSL dan SSL end to end dengan Application Gateway. Namun, jika Anda memiliki lingkungan dev/test dan tidak ingin membeli sertifikat yang ditandatangani CA terverifikasi, Anda dapat membuat CA Akar kustom Anda sendiri dan sertifikat daun yang ditandatangani oleh CA Root tersebut.

Catatan

Sertifikat yang dihasilkan sendiri tidak dipercaya secara default, dan bisa sulit dipertahankan. Selain itu, mereka dapat menggunakan hash kedaluwarsa dan cipher suite yang mungkin tidak kuat. Untuk keamanan yang lebih baik, beli sertifikat yang ditandatangani oleh otoritas sertifikat terkenal.

Anda dapat menggunakan opsi berikut untuk menghasilkan sertifikat privat Anda untuk koneksi TLS backend.

  1. Gunakan alat generator sertifikat privat satu klik. Dengan menggunakan nama domain (Nama Umum) yang Anda berikan, alat ini melakukan langkah yang sama seperti yang didokumenkan dalam artikel ini untuk menghasilkan sertifikat Root dan Server. Dengan file sertifikat yang dihasilkan, Anda dapat segera mengunggah sertifikat Akar (. CER) ke Pengaturan Backend gateway Anda dan rantai sertifikat yang sesuai (. PFX) ke server backend. Kata sandi untuk file PFX juga disediakan dalam file ZIP yang diunduh.

  2. Gunakan perintah OpenSSL untuk menyesuaikan dan menghasilkan sertifikat sesuai kebutuhan Anda. Lanjutkan untuk mengikuti instruksi dalam artikel ini jika Anda ingin melakukan ini sepenuhnya sendiri.

Dalam artikel ini, Anda akan mempelajari cara:

  • Membuat Otoritas Sertifikat kustom Anda sendiri
  • Membuat sertifikat yang ditandatangani sendiri dengan CA kustom Anda
  • Mengunggah sertifikat akar yang ditandatangani sendiri ke Application Gateway untuk mengautentikasi server ujung belakang

Prasyarat

  • OpenSSL di komputer yang menjalankan Windows atau Linux

    Meskipun mungkin ada alat lain yang tersedia untuk manajemen sertifikat, tutorial ini menggunakan OpenSSL. Anda dapat menemukan OpenSSL yang diikat dengan banyak distribusi Linux, seperti Ubuntu.

  • Server web

    Misalnya, Apache, IIS, atau NGINX untuk menguji sertifikat.

  • SKU Application Gateway v2

    Jika Anda tidak memiliki gateway aplikasi yang sudah ada, lihat Mulai Cepat: Lalu lintas web langsung dengan Azure Application Gateway - portal Microsoft Azure.

Buat sertifikat CA akar

Buat sertifikat CA akar Anda menggunakan OpenSSL.

Buat kunci akar

  1. Masuk ke komputer Anda di mana OpenSSL diinstal dan jalankan perintah berikut. Ini membuat kunci terenkripsi.

    openssl ecparam -out contoso.key -name prime256v1 -genkey
    

Buat Sertifikat Akar dan tanda tangani sendiri

  1. Gunakan perintah berikut untuk menghasilkan Permintaan Penandatanganan Sertifikat (CSR).

    openssl req -new -sha256 -key contoso.key -out contoso.csr
    
  2. Ketika diminta, ketikkan kata sandi untuk kunci akar, dan informasi organisasi untuk CA kustom seperti Negara/Wilayah, Negara Bagian, Organisasi, OU, dan nama domain yang sepenuhnya memenuhi syarat (ini adalah domain penerbit).

    create root certificate

  3. Gunakan perintah berikut untuk menghasilkan Sertifikat Akar.

    openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
    

    Perintah sebelumnya membuat sertifikat akar. Anda akan menggunakan ini untuk menandatangani sertifikat server Anda.

Buat sertifikat server

Selanjutnya, Anda akan membuat sertifikat server menggunakan OpenSSL.

Buat kunci sertifikat

Gunakan perintah berikut untuk membuat kunci untuk sertifikat server.

openssl ecparam -out fabrikam.key -name prime256v1 -genkey

Buat CSR (Permintaan Penandatanganan Sertifikat)

CSR adalah kunci publik yang diberikan kepada CA saat meminta sertifikat. CA mengeluarkan sertifikat untuk permintaan khusus ini.

Catatan

CN (Nama Umum) untuk sertifikat server harus berbeda dari domain penerbit. Misalnya, dalam hal ini, CN untuk penerbit adalah www.contoso.com dan CN sertifikat server adalah www.fabrikam.com.

  1. Gunakan perintah berikut untuk membuat CSR:

    openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
    
  2. Ketika diminta, ketikkan kata sandi untuk kunci akar, dan informasi organisasi untuk CA kustom: Negara/Wilayah, Negara Bagian, Organisasi, OU, dan nama domain yang sepenuhnya memenuhi syarat (ini adalah domain penerbit). Ini adalah domain situs web dan harus berbeda dari penerbit.

    Server certificate

Buat sertifikat dengan CSR dan kunci dan tanda tangani dengan kunci akar CA

  1. Gunakan perintah berikut untuk membuat sertifikat:

    openssl x509 -req -in fabrikam.csr -CA  contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
    

Verifikasi sertifikat yang baru dibuat

  1. Gunakan perintah berikut untuk mencetak output file CRT dan memverifikasi kontennya:

    openssl x509 -in fabrikam.crt -text -noout
    

    Certificate verification

  2. Verifikasi file di direktori Anda, dan pastikan Anda memiliki file berikut:

    • contoso.crt
    • contoso.key
    • fabrikam.crt
    • fabrikam.key

Konfigurasi sertifikat di pengaturan TLS server web Anda

Di server web Anda, konfigurasi TLS menggunakan file fabrikam.crt dan fabrikam.key Anda. Jika server web Anda tidak dapat menerima dua file, Anda dapat menggabungkannya ke satu file .pem atau .pfx menggunakan perintah OpenSSL.

IIS

Untuk instruksi tentang cara mengimpor sertifikat dan mengunggahnya sebagai sertifikat server di IIS, lihat CARA: Menginstal Sertifikat yang Diimpor di Server Web pada Windows Server 2003.

Untuk petunjuk pengikatan TLS, lihat Cara Mengatur SSL di IIS 7.

Apache

Konfigurasi berikut adalah contoh host virtual yang dikonfigurasi untuk SSL di Apache:

<VirtualHost www.fabrikam:443>
      DocumentRoot /var/www/fabrikam
      ServerName www.fabrikam.com
      SSLEngine on
      SSLCertificateFile /home/user/fabrikam.crt
      SSLCertificateKeyFile /home/user/fabrikam.key
</VirtualHost>

NGINX

Konfigurasi berikut adalah contoh blok server NGINX dengan konfigurasi TLS:

NGINX with TLS

Akses server untuk memverifikasi konfigurasi

  1. Tambahkan sertifikat akar ke penyimpanan akar tepercaya komputer Anda. Ketika Anda mengakses situs web, pastikan seluruh rantai sertifikat terlihat di browser.

    Trusted root certificates

    Catatan

    Diasumsikan bahwa DNS telah dikonfigurasi untuk mengarahkan nama server web (dalam contoh ini, www.fabrikam.com) ke alamat IP server web Anda. Jika tidak, Anda dapat mengedit file host untuk menyelesaikan nama.

  2. Telusuri ke situs web Anda, dan klik ikon kunci di kotak alamat browser Anda untuk memverifikasi informasi situs dan sertifikat.

Verifikasi konfigurasi dengan OpenSSL

Atau, Anda dapat menggunakan OpenSSL untuk memverifikasi sertifikat.

openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts

OpenSSL certificate verification

Unggah sertifikat akar ke Pengaturan HTTP Application Gateway

Untuk mengunggah sertifikat di Application Gateway, Anda harus mengekspor sertifikat .crt ke dalam format .cer yang dikodekan Base-64. Karena .crt sudah berisi kunci publik dalam format yang dikodekan base-64, cukup ganti nama ekstensi file dari .crt menjadi .cer.

Portal Azure

Untuk mengunggah sertifikat akar tepercaya dari portal, pilih Pengaturan Backend dan pilih HTTPS di protokol Backend.

Screenshot of adding a certificate using the portal.

Azure PowerShell

Atau, Anda dapat menggunakan Azure CLI atau Azure PowerShell untuk mengunggah sertifikat akar. Kode berikut adalah sampel Azure PowerShell.

Catatan

Contoh berikut menambahkan sertifikat akar tepercaya ke gateway aplikasi, membuat pengaturan HTTP baru dan menambahkan aturan baru, dengan asumsi kumpulan ujung belakang dan pendengar yang sudah ada.

## Add the trusted root certificate to the Application Gateway

$gw=Get-AzApplicationGateway -Name appgwv2 -ResourceGroupName rgOne

Add-AzApplicationGatewayTrustedRootCertificate `
   -ApplicationGateway $gw `
   -Name CustomCARoot `
   -CertificateFile "C:\Users\surmb\Downloads\contoso.cer"

$trustedroot = Get-AzApplicationGatewayTrustedRootCertificate `
   -Name CustomCARoot `
   -ApplicationGateway $gw

## Get the listener, backend pool and probe

$listener = Get-AzApplicationGatewayHttpListener `
   -Name basichttps `
   -ApplicationGateway $gw

$bepool = Get-AzApplicationGatewayBackendAddressPool `
  -Name testbackendpool `
  -ApplicationGateway $gw

Add-AzApplicationGatewayProbeConfig `
  -ApplicationGateway $gw `
  -Name testprobe `
  -Protocol Https `
  -HostName "www.fabrikam.com" `
  -Path "/" `
  -Interval 15 `
  -Timeout 20 `
  -UnhealthyThreshold 3

$probe = Get-AzApplicationGatewayProbeConfig `
  -Name testprobe `
  -ApplicationGateway $gw

## Add the configuration to the HTTP Setting and don't forget to set the "hostname" field
## to the domain name of the server certificate as this will be set as the SNI header and
## will be used to verify the backend server's certificate. Note that TLS handshake will
## fail otherwise and might lead to backend servers being deemed as Unhealthy by the probes

Add-AzApplicationGatewayBackendHttpSettings `
  -ApplicationGateway $gw `
  -Name testbackend `
  -Port 443 `
  -Protocol Https `
  -Probe $probe `
  -TrustedRootCertificate $trustedroot `
  -CookieBasedAffinity Disabled `
  -RequestTimeout 20 `
  -HostName www.fabrikam.com

## Get the configuration and update the Application Gateway

$backendhttp = Get-AzApplicationGatewayBackendHttpSettings `
  -Name testbackend `
  -ApplicationGateway $gw

Add-AzApplicationGatewayRequestRoutingRule `
  -ApplicationGateway $gw `
  -Name testrule `
  -RuleType Basic `
  -BackendHttpSettings $backendhttp `
  -HttpListener $listener `
  -BackendAddressPool $bepool

Set-AzApplicationGateway -ApplicationGateway $gw

Verifikasi kesehatan ujung belakang gateway aplikasi

  1. Klik tampilan Kesehatan Ujung Belakang gateway aplikasi Anda untuk memeriksa apakah probe sehat.
  2. Anda akan melihat bahwa Statusnya Sehat untuk probe HTTPS.

HTTPS probe

Langkah berikutnya

Untuk informasi selengkapnya tentang SSL\TLS Application Gateway, lihat Gambaran Umum penghentian TLS dan TLS end to end dengan Application Gateway.