Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: ✔️ mesin virtual Linux
Untuk mengamankan server web, Keamanan Lapisan Transportasi (TLS), sebelumnya dikenal sebagai Secure Sockets Layer (SSL), sertifikat dapat digunakan untuk mengenkripsi lalu lintas web. Sertifikat TLS/SSL ini dapat disimpan di Azure Key Vault, dan memungkinkan penyebaran sertifikat yang aman ke komputer virtual (VM) Linux di Azure. Dalam tutorial ini, Anda akan mempelajari cara:
- Buat Azure Key Vault
- Membuat atau mengunggah sertifikat ke Azure Key Vault
- Membuat VM dan menginstal server web NGINX
- Memasukkan sertifikat ke VM dan mengonfigurasikan NGINX dengan ikatan TLS
Tutorial ini menggunakan CLI dalam Azure Cloud Shell, yang terus diperbarui ke versi terkini. Untuk membuka Cloud Shell, pilih Coba dari bagian atas blok kode apa pun.
Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, tutorial ini mengharuskan Anda menjalankan Azure CLI versi 2.0.30 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
Gambaran Umum
Azure Key Vault melindungi kunci dan rahasia kriptografi, seperti sertifikat atau kata sandi. Key Vault membantu mempermudah proses manajemen sertifikat dan memungkinkan Anda mempertahankan kontrol kunci yang mengakses sertifikat tersebut. Anda dapat membuat sertifikat yang ditandatangani sendiri di dalam Key Vault, atau mengunggah sertifikat tepercaya yang ada yang Anda miliki.
Daripada menggunakan gambar VM kustom yang sudah terintegrasi dengan sertifikat, Anda menyuntikkan sertifikat ke dalam VM yang sedang berjalan. Proses ini memastikan bahwa sertifikat terbaru diinstal di server web selama penyebaran. Jika Anda memperbarui atau mengganti sertifikat, Anda tidak perlu membuat gambar VM kustom baru. Sertifikat terbaru secara otomatis disuntikkan saat Anda membuat lebih banyak VM. Selama proses dari awal hingga akhir, sertifikat tidak pernah dikeluarkan dari platform Azure atau diekspos dalam skrip, riwayat baris perintah, atau template.
Buat Azure Key Vault
Sebelum Anda dapat membuat Key Vault dan sertifikat, buat grup sumber daya dengan az group create. Contoh berikut membuat grup sumber daya bernama myResourceGroupSecureWeb di lokasi eastus :
az group create --name myResourceGroupSecureWeb --location eastus
Selanjutnya, buat Key Vault dengan az keyvault create dan aktifkan untuk digunakan saat Anda menyebarkan VM. Setiap Key Vault memerlukan nama yang unik, dan harus semua huruf kecil. Ganti <mykeyvault> dalam contoh berikut dengan nama Key Vault unik Anda sendiri:
keyvault_name=<mykeyvault>
az keyvault create \
--resource-group myResourceGroupSecureWeb \
--name $keyvault_name \
--enabled-for-deployment
Membuat sertifikat dan menyimpan di Key Vault
Untuk penggunaan produksi, Anda harus mengimpor sertifikat valid yang ditandatangani oleh penyedia tepercaya dengan impor sertifikat keyvault az. Untuk tutorial ini, contoh berikut menunjukkan bagaimana Anda dapat membuat sertifikat yang ditandatangani sendiri dengan az keyvault certificate create yang menggunakan kebijakan sertifikat default:
az keyvault certificate create \
--vault-name $keyvault_name \
--name mycert \
--policy "$(az keyvault certificate get-default-policy)"
Menyiapkan sertifikat untuk digunakan dengan VM
Untuk menggunakan sertifikat selama proses pembuatan VM, dapatkan ID sertifikat Anda dengan az keyvault secret list-versions. Konversi sertifikat dengan format rahasia az vm. Contoh berikut menetapkan output perintah ini ke variabel untuk kemudahan penggunaan di langkah-langkah berikutnya:
secret=$(az keyvault secret list-versions \
--vault-name $keyvault_name \
--name mycert \
--query "[?attributes.enabled].id" --output tsv)
vm_secret=$(az vm secret format --secrets "$secret" -g myResourceGroupSecureWeb --keyvault $keyvault_name)
Membuat konfigurasi cloud-init untuk mengamankan NGINX
Cloud-init adalah pendekatan yang banyak digunakan untuk menyesuaikan VM Linux saat boot untuk pertama kalinya. Anda dapat menggunakan cloud-init untuk memasang paket dan menulis file, atau untuk mengonfigurasi pengguna dan keamanan. Saat cloud-init berjalan selama proses boot awal, tidak ada langkah tambahan atau agen yang diperlukan untuk menerapkan konfigurasi Anda.
Saat Anda membuat VM, sertifikat dan kunci disimpan dalam direktori /var/lib/waagent/ yang dilindungi. Untuk mengotomatiskan penambahan sertifikat ke VM dan mengonfigurasi server web, gunakan cloud-init. Dalam contoh ini, Anda menginstal dan mengonfigurasi server web NGINX. Anda dapat menggunakan proses yang sama untuk menginstal dan mengonfigurasi Apache.
Buat file bernama cloud-init-web-server.txt dan tempelkan konfigurasi berikut:
#cloud-config
package_upgrade: true
packages:
- nginx
write_files:
- owner: www-data:www-data
- path: /etc/nginx/sites-available/default
content: |
server {
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/mycert.cert;
ssl_certificate_key /etc/nginx/ssl/mycert.prv;
}
runcmd:
- secretsname=$(find /var/lib/waagent/ -name "*.prv" | cut -c -57)
- mkdir /etc/nginx/ssl
- cp $secretsname.crt /etc/nginx/ssl/mycert.cert
- cp $secretsname.prv /etc/nginx/ssl/mycert.prv
- service nginx restart
Membuat VM yang aman
Sekarang buat VM dengan az vm create. Data sertifikat disuntikkan dari Key Vault dengan --secrets parameter . Anda meneruskan konfigurasi cloud-init dengan parameter --custom-data tersebut.
az vm create \
--resource-group myResourceGroupSecureWeb \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init-web-server.txt \
--secrets "$vm_secret"
Dibutuhkan beberapa menit agar VM dibuat, paket untuk diinstal, dan aplikasi dimulai. Ketika VM telah dibuat, perhatikan output publicIpAddress yang ditampilkan oleh Azure CLI. Alamat ini digunakan untuk mengakses situs Anda di browser web.
Untuk memungkinkan lalu lintas web yang aman mencapai VM Anda, buka port 443 dari Internet dengan az vm open-port:
az vm open-port \
--resource-group myResourceGroupSecureWeb \
--name myVM \
--port 443
Menguji aplikasi web aman
Sekarang Anda dapat membuka browser web dan memasukkan https://< publicIpAddress> di bilah alamat. Berikan alamat IP publik Anda sendiri dari proses pembuatan VM. Terima peringatan keamanan jika Anda menggunakan sertifikat yang ditandatangani sendiri:
Situs NGINX aman Anda kemudian ditampilkan seperti dalam contoh berikut:
Langkah berikutnya
Dalam tutorial ini, Anda mengamankan server web NGINX dengan sertifikat TLS/SSL yang disimpan di Azure Key Vault. Anda mempelajari cara untuk:
- Buat Azure Key Vault
- Membuat atau mengunggah sertifikat ke Azure Key Vault
- Membuat VM dan menginstal server web NGINX
- Memasukkan sertifikat ke VM dan mengonfigurasikan NGINX dengan ikatan TLS
Ikuti tautan ini untuk melihat sampel skrip komputer virtual bawaan.