Azure Firewall Premium-certifikat

För att konfigurera Azure Firewall Premium TLS-inspektion korrekt måste du ange ett giltigt mellanliggande CA-certifikat och sätta in det i Azure Key Vault.

Certifikat som används av Azure Firewall Premium

Det finns tre typer av certifikat som används i en typisk distribution:

  • Mellanliggande CA-certifikat (CA-certifikat)

    En certifikatutfärdare (CA) är en organisation som är betrodd för att signera digitala certifikat. En certifikatutfärdare verifierar identitet och legitimitet för ett företag eller en enskild person som begär ett certifikat. Om verifieringen lyckas utfärdar certifikatutfärdare ett signerat certifikat. När servern visar certifikatet för klienten (till exempel webbläsaren) under en SSL/TLS-handskakning försöker klienten verifiera signaturen mot en lista över kända goda undertecknare. Webbläsare levereras vanligtvis med listor över certifikatutfärdare som de implicit litar på för att identifiera värdar. Om utfärdaren inte finns i listan, som med vissa webbplatser som signerar sina egna certifikat, varnar webbläsaren användaren om att certifikatet inte är signerat av en erkänd utfärdare och frågar användaren om de vill fortsätta kommunikationen med overifierad webbplats.

  • Servercertifikat (webbplatscertifikat)

    Ett certifikat som är associerat med ett specifikt domännamn. Om en webbplats har ett giltigt certifikat innebär det att en certifikatutfärdare har vidtagit åtgärder för att kontrollera att webbadressen faktiskt tillhör organisationen. När du skriver en URL eller följer en länk till en säker webbplats kontrollerar webbläsaren certifikatet efter följande egenskaper:

    • Webbplatsadressen matchar adressen på certifikatet.
    • Certifikatet signeras av en certifikatutfärdare som webbläsaren känner igen som en betrodd utfärdare .

    Ibland kan användare ansluta till en server med ett certifikat som inte är betrott. Azure Firewall släpper anslutningen som om servern avslutade anslutningen.

  • Rotcertifikatutfärdarcertifikat (rotcertifikat)

    En certifikatutfärdare kan utfärda flera certifikat i form av en trädstruktur. Ett rotcertifikat är det högsta certifikatet i trädet.

Azure Firewall Premium kan fånga upp utgående HTTP/S-trafik och automatiskt generera ett servercertifikat för www.website.com. Det här certifikatet genereras med hjälp av det mellanliggande CA-certifikat som du anger. Slutanvändares webbläsare och klientprogram (IaaS, PaaS och andra arbetsbelastningar) måste lita på organisationens rotcertifikatutfärdarcertifikat eller mellanliggande CA-certifikat för att den här proceduren ska fungera.

Certifikatprocess

Krav för mellanliggande CA-certifikat

Kontrollera att certifikatutfärdarcertifikatet uppfyller följande krav:

  • När du distribueras som en Key Vault-hemlighet måste du använda Lösenordsfri PFX (PKCS12) med ett certifikat och en privat nyckel. PEM-certifikat stöds inte.

  • Det måste vara ett enda certifikat och ska inte innehålla hela kedjan med certifikat.

  • Det måste vara giltigt i ett år framåt.

  • Det måste vara en privat RSA-nyckel med minimal storlek på 4 096 byte.

  • Tillägget måste vara KeyUsage markerat som Kritiskt med KeyCertSign flaggan (RFC 5280; 4.2.1.3 Nyckelanvändning).

  • Tillägget måste vara BasicConstraints markerat som Kritiskt (RFC 5280; 4.2.1.9 Grundläggande begränsningar).

  • Flaggan CA måste vara inställd på TRUE.

  • Sökvägens längd måste vara större än eller lika med en.

  • Den måste kunna exporteras.

Azure Key Vault

Azure Key Vault är ett plattformshanterat hemligt arkiv som du kan använda för att skydda hemligheter, nycklar och TLS/SSL-certifikat. Azure Firewall Premium stöder integrering med Key Vault för servercertifikat som är kopplade till en brandväggsprincip.

Så här konfigurerar du ditt nyckelvalv:

  • Du måste importera ett befintligt certifikat med dess nyckelpar till ditt nyckelvalv.
  • Du kan också använda en nyckelvalvshemlighet som lagras som en lösenordslös, base-64-kodad PFX-fil. En PFX-fil är ett digitalt certifikat som innehåller både privat nyckel och offentlig nyckel.
  • Vi rekommenderar att du använder en CA-certifikatimport eftersom du kan konfigurera en avisering baserat på certifikatets förfallodatum.
  • När du har importerat ett certifikat eller en hemlighet måste du definiera åtkomstprinciper i nyckelvalvet så att identiteten kan beviljas åtkomst till certifikatet/hemligheten.
  • Det angivna CA-certifikatet måste vara betrott av din Azure-arbetsbelastning. Se till att de distribueras korrekt.
  • Eftersom Azure Firewall Premium visas som Betrodd Key Vault-tjänst kan du kringgå Den interna brandväggen för Key Vault och eliminera all exponering av ditt Nyckelvalv på Internet.

Kommentar

När du importerar ett nytt certifikat för brandväggscertifikatutfärdare till Azure Key Vault (antingen för första gången eller ersätter en utgången CA-certifiering) bör du uttryckligen uppdatera TLS-inställningen för Azure Firewall Policy med det nya certifikatet.

Du kan antingen skapa eller återanvända en befintlig användartilldelad hanterad identitet, som Azure Firewall använder för att hämta certifikat från Key Vault åt dig. Mer information finns i Vad är hanterade identiteter för Azure-resurser?

Kommentar

Rollbaserad åtkomstkontroll i Azure (Azure RBAC) stöds för närvarande inte för auktorisering. Använd åtkomstprincipmodellen i stället. Mer information finns i Rollbaserad åtkomstkontroll i Azure (Azure RBAC) jämfört med åtkomstprinciper.

Konfigurera ett certifikat i principen

Om du vill konfigurera ett CA-certifikat i din Firewall Premium-princip väljer du din princip och väljer sedan TLS-inspektion. Välj Aktiverad på TLS-kontrollsidan. Välj sedan certifikatutfärdarcertifikatet i Azure Key Vault enligt följande bild:

Översiktsdiagram för Azure Firewall Premium

Viktigt!

Om du vill se och konfigurera ett certifikat från Azure-portalen måste du lägga till ditt Azure-användarkonto i Key Vault-åtkomstprincipen. Ge ditt användarkonto Hämta och lista under Hemliga behörigheter. Åtkomstprincip för Azure Key Vault

Skapa ett eget självsignerat CA-certifikat

Om du vill skapa egna certifikat som hjälper dig att testa och verifiera TLS-inspektionen kan du använda följande skript för att skapa din egen självsignerade rotcertifikatutfärdare och mellanliggande CA.

Viktigt!

För produktion bör du använda företagets PKI för att skapa ett mellanliggande CA-certifikat. En företags-PKI utnyttjar den befintliga infrastrukturen och hanterar rotcertifikatutfärdardistributionen till alla slutpunktsdatorer. Mer information finns i Distribuera och konfigurera Enterprise CA-certifikat för Azure Firewall.

Det finns två versioner av det här skriptet:

  • ett bash-skript cert.sh
  • ett PowerShell-skript cert.ps1

Dessutom använder båda skripten openssl.cnf konfigurationsfilen. Om du vill använda skripten kopierar du innehållet i openssl.cnfoch cert.sh eller cert.ps1 till den lokala datorn.

Skripten genererar följande filer:

  • rootCA.crt/rootCA.key – Rotcertifikatutfärdarcertifikat och privat nyckel.
  • interCA.crt/interCA.key – Mellanliggande certifikatutfärdarcertifikat och privat nyckel
  • interCA.pfx – Mellanliggande CA pkcs12-paket som kommer att användas av brandväggen

Viktigt!

rootCA.key ska lagras på en säker offlineplats. Skripten genererar ett certifikat med giltigheten 1 024 dagar. Skripten kräver opensl binärfiler installerade på din lokala dator. Mer information finns i https://www.openssl.org/

När certifikaten har skapats distribuerar du dem till följande platser:

  • rootCA.crt – Distribuera på slutpunktsdatorer (endast offentligt certifikat).
  • interCA.pfx – Importera som certifikat på ett Key Vault och tilldela till brandväggsprincip.

openssl.cnf

[ req ]
default_bits        = 4096
distinguished_name  = req_distinguished_name
string_mask         = utf8only
default_md          = sha512

[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
stateOrProvinceName             = State or Province Name
localityName                    = Locality Name
0.organizationName              = Organization Name
organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name
emailAddress                    = Email Address

[ rootCA_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ interCA_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true, pathlen:1
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ server_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:false
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth

Bash-skript – cert.sh

#!/bin/bash

# Create root CA
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.key -sha256 -days 1024 -out rootCA.crt -subj "/C=US/ST=US/O=Self Signed/CN=Self Signed Root CA" -config openssl.cnf -extensions rootCA_ext

# Create intermediate CA request
openssl req -new -nodes -newkey rsa:4096 -keyout interCA.key -sha256 -out interCA.csr -subj "/C=US/ST=US/O=Self Signed/CN=Self Signed Intermediate CA"

# Sign on the intermediate CA
openssl x509 -req -in interCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out interCA.crt -days 1024 -sha256 -extfile openssl.cnf -extensions interCA_ext

# Export the intermediate CA into PFX
openssl pkcs12 -export -out interCA.pfx -inkey interCA.key -in interCA.crt -password "pass:"

echo ""
echo "================"
echo "Successfully generated root and intermediate CA certificates"
echo "   - rootCA.crt/rootCA.key - Root CA public certificate and private key"
echo "   - interCA.crt/interCA.key - Intermediate CA public certificate and private key"
echo "   - interCA.pfx - Intermediate CA pkcs12 package which could be uploaded to Key Vault"
echo "================"

PowerShell – cert.ps1

# Create root CA
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.key -sha256 -days 3650 -out rootCA.crt -subj '/C=US/ST=US/O=Self Signed/CN=Self Signed Root CA' -config openssl.cnf -extensions rootCA_ext

# Create intermediate CA request
openssl req -new -nodes -newkey rsa:4096 -keyout interCA.key -sha256 -out interCA.csr -subj '/C=US/ST=US/O=Self Signed/CN=Self Signed Intermediate CA'

# Sign on the intermediate CA
openssl x509 -req -in interCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out interCA.crt -days 3650 -sha256 -extfile openssl.cnf -extensions interCA_ext

# Export the intermediate CA into PFX
openssl pkcs12 -export -out interCA.pfx -inkey interCA.key -in interCA.crt -password 'pass:'

Write-Host ""
Write-Host "================"
Write-Host "Successfully generated root and intermediate CA certificates"
Write-Host "   - rootCA.crt/rootCA.key - Root CA public certificate and private key"
Write-Host "   - interCA.crt/interCA.key - Intermediate CA public certificate and private key"
Write-Host "   - interCA.pfx - Intermediate CA pkcs12 package which could be uploaded to Key Vault"
Write-Host "================"

Automatisk generering av certifikat

För icke-produktionsdistributioner kan du använda mekanismen För automatisk generering av Azure Firewall Premium-certifiering, som automatiskt skapar följande tre resurser åt dig:

  • Hanterad identitet
  • Key Vault
  • Självsignerat rotcertifikatutfärdarcertifikat

Välj bara den nya hanterade identiteten och koppla ihop de tre resurserna i din Premium-princip och konfigurera TLS-inspektion.

Skärmbild som visar automatiskt genererade certifikat.

Felsökning

Om certifikatutfärdarcertifikatet är giltigt, men du inte kan komma åt FQDN eller URL:er under TLS-inspektion, kontrollerar du följande:

  • Kontrollera att webbservercertifikatet är giltigt.

  • Kontrollera att rotcertifikatutfärdarcertifikatet är installerat på klientoperativsystemet.

  • Kontrollera att webbläsaren eller HTTPS-klienten innehåller ett giltigt rotcertifikat. Firefox och vissa andra webbläsare kan ha särskilda certifieringsprinciper.

  • Kontrollera att URL-måltypen i programregeln täcker rätt sökväg och alla andra hyperlänkar som är inbäddade på html-målsidan. Du kan använda jokertecken för att enkelt täcka hela den url-sökväg som krävs.

Nästa steg