Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✔️ Virtuální počítače s Linuxem
K zabezpečení webových serverů se k šifrování webového provozu dá použít certifikát TLS (Transport Layer Security), dříve označovaný jako SSL (Secure Sockets Layer). Tyto certifikáty TLS/SSL se dají ukládat ve službě Azure Key Vault a umožňují zabezpečené nasazení certifikátů do virtuálních počítačů s Linuxem v Azure. V tomto kurzu se naučíte:
- Vytvoření služby Azure Key Vault
- Generování nebo nahrání certifikátu do služby Key Vault
- Vytvoření virtuálního počítače a instalace webového serveru NGINX
- Vložte certifikát do virtuálního počítače a nakonfigurujte NGINX pomocí vazby TLS.
V tomto kurzu se používá rozhraní příkazového řádku v Azure Cloud Shellu, které se neustále aktualizuje na nejnovější verzi. Cloud Shell otevřete tak, že v horní části libovolného bloku kódu vyberete Vyzkoušet .
Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku místně, musíte mít Azure CLI verze 2.0.30 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Přehled
Azure Key Vault chrání kryptografické klíče a tajné kódy, jako jsou certifikáty a hesla. Key Vault pomáhá zjednodušit proces správy certifikátů a zajišťuje kontrolu nad klíči, které se používají k přístupu k těmto certifikátům. V rámci služby Key Vault můžete vytvořit certifikát podepsaný svým držitelem nebo nahrát stávající důvěryhodný certifikát, který již vlastníte.
Místo použití vlastní image virtuálního počítače, která obsahuje vložené certifikáty, vložíte certifikáty do spuštěného virtuálního počítače. Tento proces zajistí, že se při nasazování na webový server nainstalují nejnovější certifikáty. Pokud prodloužíte nebo nahradíte certifikát, nemusíte také vytvářet novou vlastní image virtuálního počítače. Nejnovější certifikáty se automaticky vloží při vytváření dalších virtuálních počítačů. Během celého procesu certifikáty nikdy neopustí platformu Azure nebo jsou vystavené ve skriptu, historii příkazového řádku nebo šabloně.
Vytvoření služby Azure Key Vault
Než budete moct vytvořit službu Key Vault a certifikáty, vytvořte skupinu prostředků pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků myResourceGroupSecureWeb v lokalitě eastus.
az group create --name myResourceGroupSecureWeb --location eastus
Dále vytvořte službu Key Vault pomocí příkazu az keyvault create a povolte ji pro použití při nasazování virtuálního počítače. Každý trezor klíčů vyžaduje jedinečný název a měl by být všechna malá písmena. Nahraďte <mykeyvault> v následujícím příkladu vlastním jedinečným názvem služby Key Vault:
keyvault_name=<mykeyvault>
az keyvault create \
--resource-group myResourceGroupSecureWeb \
--name $keyvault_name \
--enabled-for-deployment
Vygenerování certifikátu a uložení ve službě Key Vault
Pro produkční použití byste měli importovat platný certifikát podepsaný důvěryhodným poskytovatelem pomocí příkazu az keyvault certificate import. V tomto kurzu následující příklad ukazuje, jak můžete vygenerovat certifikát podepsaný svým držitelem pomocí příkazu az keyvault certificate create , který používá výchozí zásady certifikátu:
az keyvault certificate create \
--vault-name $keyvault_name \
--name mycert \
--policy "$(az keyvault certificate get-default-policy)"
Příprava certifikátu pro použití s virtuálním počítačem
Pokud chcete certifikát použít během procesu vytvoření virtuálního počítače, získejte ID certifikátu pomocí příkazu az keyvault secret list-versions. Převeďte certifikát pomocí příkazu az vm secret format. Z důvodu snadnějšího použití v dalších krocích přiřadí následující příklad výstup těchto příkazů do proměnných:
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)
Vytvoření konfigurace cloud-init pro zabezpečení serveru NGINX
Cloud-init je široce používaný přístup k přizpůsobení virtuálního počítače s Linuxem při prvním spuštění. Pomocí cloud-init můžete instalovat balíčky a zapisovat soubory nebo konfigurovat uživatele a zabezpečení. Vzhledem k tomu, že cloud-init běží během počátečního procesu spouštění, nejsou k dispozici žádné další kroky ani požadované agenty pro použití vaší konfigurace.
Při vytváření virtuálního počítače se certifikáty a klíče ukládají do chráněného adresáře /var/lib/waagent/ . Pokud chcete automatizovat přidávání certifikátu do virtuálního počítače a konfiguraci webového serveru, použijte cloud-init. V tomto příkladu nainstalujete a nakonfigurujete webový server NGINX. Stejný postup můžete použít k instalaci a konfiguraci Apache.
Vytvořte soubor s názvem cloud-init-web-server.txt a vložte následující konfiguraci:
#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
Vytvoření zabezpečeného virtuálního počítače
Teď vytvořte virtuální počítač pomocí příkazu az vm create. Data certifikátu se vloží ze služby Key Vault s parametrem --secrets . Konfiguraci cloud-init předáte pomocí parametru --custom-data :
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"
Vytvoření virtuálního počítače, instalace balíčků a spuštění aplikace trvá několik minut. Po vytvoření virtuálního počítače si poznamenejte publicIpAddress zobrazené v Azure CLI. Tato adresa se používá pro přístup k webu ve webovém prohlížeči.
Pokud chcete povolit zabezpečený webový provoz pro přístup k virtuálnímu počítači, otevřete port 443 z internetu pomocí příkazu az vm open-port:
az vm open-port \
--resource-group myResourceGroupSecureWeb \
--name myVM \
--port 443
Testování zabezpečené webové aplikace
Teď můžete otevřít webový prohlížeč a zadat https://< publicIpAddress> na panelu Adresa. Zadejte vlastní veřejnou IP adresu z procesu vytvoření virtuálního počítače. Pokud jste použili certifikát podepsaný svým držitelem, přijměte upozornění zabezpečení:
Zabezpečená lokalita NGINX se pak zobrazí jako v následujícím příkladu:
Další kroky
V tomto kurzu jste zabezpečili webový server NGINX pomocí certifikátu TLS/SSL uloženého ve službě Azure Key Vault. Naučili jste se:
- Vytvoření služby Azure Key Vault
- Generování nebo nahrání certifikátu do služby Key Vault
- Vytvoření virtuálního počítače a instalace webového serveru NGINX
- Vložte certifikát do virtuálního počítače a nakonfigurujte NGINX pomocí vazby TLS.
Na tomto odkazu najdete předem připravené ukázky skriptů virtuálních počítačů.