Bagikan melalui


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 root adalah sertifikat berformat X.509 (.CER) yang dienkode Base-64 dari server sertifikat backend. 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). Anda tidak perlu mengunggah sertifikat akar secara eksplisit dalam kasus tersebut. Untuk informasi selengkapnya, lihat Ikhtisar terminasi TLS dan TLS 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 Root kustom Anda sendiri dan sertifikat cabang yang ditandatangani oleh CA Root tersebut.

Nota

Sertifikat yang dihasilkan sendiri tidak dipercaya secara default dan bisa sulit dipertahankan. Selain itu, mereka dapat menggunakan hash dan kumpulan sandi kedaluwarsa 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 yang ditandatangani oleh CA kustom Anda
  • Mengunggah sertifikat akar yang ditandatangani sendiri ke Application Gateway untuk mengautentikasi server backend

Prasyarat

Buat sertifikat CA akar

Gunakan OpenSSL untuk membuat sertifikat CA root.

Buat kunci akar

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

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

Membuat Sertifikat Akar dan menandatanganinya sendiri

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

    openssl req -new -sha256 -key contoso.key -out contoso.csr
    
  2. Saat diminta, ketik 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).

    buat sertifikat akar

  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 induk. Anda akan menggunakan ini untuk menandatangani sertifikat server Anda.

Buat sertifikat server

Selanjutnya, Anda akan membuat sertifikat server menggunakan OpenSSL.

Membuat kunci sertifikat

Gunakan perintah berikut untuk menghasilkan kunci untuk sertifikat server.

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

Membuat CSR (Permintaan Penandatanganan Sertifikat)

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

Nota

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 menghasilkan CSR:

    openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
    
  2. Saat diminta, ketik kata sandi untuk kunci akar, dan informasi organisasi untuk CA kustom: Negara/Wilayah, Negara Bagian, Organisasi, OU, dan nama domain yang sepenuhnya memenuhi syarat. Alamat domain situs web ini harus berbeda dari penerbitnya.

    Sertifikat server

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
    

Memverifikasi sertifikat yang baru dibuat

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

    openssl x509 -in fabrikam.crt -text -noout
    

    Verifikasi sertifikat

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

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

Mengonfigurasi sertifikat di pengaturan TLS server web Anda

Di server web Anda, konfigurasikan TLS menggunakan file fabrikam.crt dan fabrikam.key. Jika server web Anda tidak dapat mengambil 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 pada Server Web di Windows Server 2003.

Untuk instruksi pengikatan TLS, lihat Cara Menyiapkan 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 dengan TLS

Mengakses server untuk memverifikasi konfigurasi

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

    Sertifikat root tepercaya

    Nota

    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 hosts untuk menyelesaikan masalah nama.

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

Memverifikasi konfigurasi dengan OpenSSL

Atau, Anda dapat menggunakan OpenSSL untuk memverifikasi sertifikat.

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

Verifikasi sertifikat OpenSSL

Mengunggah sertifikat akar ke Pengaturan HTTP Application Gateway

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

Portal Microsoft Azure

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

Cuplikan layar menambahkan sertifikat menggunakan portal.

Azure PowerShell

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

Nota

Sampel berikut menambahkan sertifikat akar tepercaya ke gateway aplikasi, membuat pengaturan HTTP baru dan menambahkan aturan baru, dengan asumsi kumpulan backend dan pendengar 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

Memverifikasi kesehatan backend gateway aplikasi

  1. Klik Kesehatan Backend pada gateway aplikasi Anda untuk memeriksa apakah probe berfungsi dengan baik.
  2. Anda akan melihat bahwa Status adalah Sehat untuk pemeriksaan HTTPS.

Pengujian HTTPS

Langkah berikutnya

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