Azure Firewall Premium certificaten

Als u de TLS-Azure Firewall Premium wilt configureren, moet u een geldig tussenliggend CA-certificaat verstrekken en dit in Azure Key Vault onderversleutelen.

Certificaten die worden gebruikt door Azure Firewall Premium

Er zijn drie typen certificaten die worden gebruikt in een typische implementatie:

  • Tussenliggend CA-certificaat (CA-certificaat)

    Een certificeringsinstantie (CA) is een organisatie die wordt vertrouwd om digitale certificaten te ondertekenen. Een CA verifieert de identiteit en de echtheid van een bedrijf of persoon die een certificaat aanvraagt. Als de verificatie is geslaagd, geeft de CA een ondertekend certificaat uit. Wanneer de server het certificaat aan de client presenteert (bijvoorbeeld uw webbrowser) tijdens een SSL/TLS-handshake, probeert de client de handtekening te verifiëren aan de hand van een lijst met bekende goede ondertekeningen. Webbrowsers worden doorgaans weergegeven met lijsten met CAs die impliciet worden vertrouwd om hosts te identificeren. Als de instantie niet in de lijst staat, zoals bij sommige sites die hun eigen certificaten ondertekenen, waarschuwt de browser de gebruiker dat het certificaat niet is ondertekend door een herkende instantie en vraagt de gebruiker of deze wil doorgaan met de communicatie met niet-geverifieerde site.

  • Servercertificaat (websitecertificaat)

    Een certificaat dat is gekoppeld aan een specifieke domeinnaam. Als een website een geldig certificaat heeft, betekent dit dat een certificeringsinstantie stappen heeft ondernomen om te controleren of het webadres daadwerkelijk bij die organisatie hoort. Wanneer u een URL typt of een koppeling naar een beveiligde website volgt, controleert uw browser het certificaat op de volgende kenmerken:

    • Het adres van de website komt overeen met het adres op het certificaat.
    • Het certificaat wordt ondertekend door een certificeringsinstantie die door de browser wordt herkend als een vertrouwde instantie.

    Soms kunnen gebruikers verbinding maken met een server met een niet-vertrouwd certificaat. Azure Firewall wordt de verbinding verbroken alsof de server de verbinding heeft verbroken.

  • Basis-CA-certificaat (basiscertificaat)

    Een certificeringsinstantie kan meerdere certificaten uitgeven in de vorm van een structuurstructuur. Een basiscertificaat is het meest voorkomende certificaat van de structuur.

Azure Firewall Premium kunt uitgaand HTTP/S-verkeer onderscheppen en automatisch een servercertificaat genereren voor www.website.com . Dit certificaat wordt gegenereerd met behulp van het tussenliggende CA-certificaat dat u op geeft. Eindgebruikersbrowser en clienttoepassingen moeten het basis-CA-certificaat of tussenliggende CA-certificaat van uw organisatie vertrouwen om deze procedure te laten werken.

Certificaatproces

Vereisten voor tussenliggende CA-certificaten

Zorg ervoor dat uw CA-certificaat voldoet aan de volgende vereisten:

  • Wanneer u deze als een Key Vault gebruikt, moet u PFX zonder wachtwoord (Pkcs12) gebruiken met een certificaat en een persoonlijke sleutel.

  • Het moet één certificaat zijn en mag niet de volledige keten van certificaten bevatten.

  • Deze moet één jaar geldig zijn.

  • Het moet een persoonlijke RSA-sleutel zijn met een minimale grootte van 4096 bytes.

  • De extensie moet zijn gemarkeerd KeyUsage als Kritiek met de vlag KeyCertSign (RFC 5280; 4.2.1.3 Sleutelgebruik).

  • De extensie moet zijn BasicContraints gemarkeerd als Kritiek (RFC 5280; 4.2.1.9 Basic Constraints).

  • De CA vlag moet worden ingesteld op TRUE.

  • De padlengte moet groter zijn dan of gelijk zijn aan één pad.

Azure Key Vault

Azure Key Vault is een door het platform beheerd geheim opslag dat u kunt gebruiken voor het beveiligen van geheimen, sleutels en TLS/SSL-certificaten. Azure Firewall Premium ondersteunt integratie met Key Vault voor servercertificaten die zijn gekoppeld aan een firewallbeleid.

Uw sleutelkluis configureren:

  • U moet een bestaand certificaat met het sleutelpaar importeren in uw sleutelkluis.
  • U kunt ook een sleutelkluisgeheim gebruiken dat is opgeslagen als een PFX-bestand met base-64-codering dat geen wachtwoord heeft. Een PFX-bestand is een digitaal certificaat met zowel een persoonlijke als een openbare sleutel.
  • Het is raadzaam om een CA-certificaatimport te gebruiken, omdat u hiermee een waarschuwing kunt configureren op basis van de vervaldatum van het certificaat.
  • Nadat u een certificaat of een geheim hebt geïmporteerd, moet u toegangsbeleid definiëren in de sleutelkluis om de identiteit toegang te geven tot het certificaat/geheim.
  • Het opgegeven CA-certificaat moet worden vertrouwd door uw Azure-workload. Zorg ervoor dat ze correct zijn geïmplementeerd.

U kunt een bestaande door de gebruiker toegewezen beheerde identiteit maken of opnieuw gebruiken, die Azure Firewall gebruikt om namens u certificaten van Key Vault op te halen. Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie.

Een certificaat configureren in uw beleid

Als u een CA-certificaat wilt configureren in Premium firewallbeleid, selecteert u uw beleid en selecteert u vervolgens TLS-inspectie. Selecteer Ingeschakeld op de pagina TLS-inspectie. Selecteer vervolgens uw CA-certificaat in Azure Key Vault, zoals wordt weergegeven in de volgende afbeelding:

Azure Firewall Premium overzichtsdiagram

Belangrijk

Als u een certificaat van de Azure Portal wilt zien en configureren, moet u uw Azure-gebruikersaccount toevoegen aan Key Vault toegangsbeleid. Geef uw gebruikersaccount Get and List onder Secret Permissions. Azure Key Vault-toegangsbeleid

Uw eigen zelf-ondertekende CA-certificaat maken

Als u uw eigen certificaten wilt maken om U te helpen TLS-inspectie te testen en te controleren, kunt u de volgende scripts gebruiken om uw eigen zelf-ondertekende basis-CA en tussenliggende CA te maken.

Belangrijk

Voor productie moet u uw zakelijke PKI gebruiken om een tussenliggend CA-certificaat te maken. Een zakelijke PKI maakt gebruik van de bestaande infrastructuur en verwerkt de distributie van de basis-CA naar alle eindpuntmachines. Zie Ca-certificaten voor ondernemingen implementeren en configurerenvoor meer Azure Firewall.

Er zijn twee versies van dit script:

  • een bash-script cert.sh
  • een PowerShell-script cert.ps1

Beide scripts maken ook gebruik van openssl.cnf het configuratiebestand. Als u de scripts wilt gebruiken, kopieert u de inhoud van openssl.cnf en of naar uw lokale cert.sh cert.ps1 computer.

De scripts genereren de volgende bestanden:

  • rootCA.crt/rootCA.key: openbaar basis-CA-certificaat en persoonlijke sleutel.
  • interCA.crt/interCA.key : tussenliggend ca-certificaat en persoonlijke sleutel
  • interCA.pfx - tussenliggend CA pkcs12-pakket dat wordt gebruikt door de firewall

Belangrijk

rootCA.key moet worden opgeslagen op een veilige offlinelocatie. De scripts genereren een certificaat met een geldigheidsduur van 1024 dagen. Voor de scripts moeten openssl binaire bestanden zijn geïnstalleerd op uw lokale computer. Zie voor meer informatie https://www.openssl.org/

Nadat de certificaten zijn gemaakt, implementeert u deze op de volgende locaties:

  • rootCA.crt: implementeren op eindpuntmachines (alleen openbaar certificaat).
  • interCA.pfx: importeer als certificaat op een Key Vault toewijzen aan firewallbeleid.

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-script - 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 "================"

Automatisch genereren van certificaten (preview)

Voor niet-productie-implementaties kunt u het mechanisme Azure Firewall Premium automatische generatie certificering gebruiken, waarmee automatisch de volgende drie resources voor u worden gemaakt:

  • Beheerde identiteit
  • Key Vault
  • Zelf-ondertekend basis-CA-certificaat

Kies de nieuwe beheerde preview-identiteit en verbindt de drie resources in uw Premium en stelt TLS-inspectie in.

Automatisch gegenereerde certificaten

Problemen oplossen

Als uw CA-certificaat geldig is, maar u geen toegang hebt tot FQDN's of URL's onder TLS-inspectie, controleert u de volgende items:

  • Zorg ervoor dat het webservercertificaat geldig is.

  • Zorg ervoor dat het basis-CA-certificaat is geïnstalleerd op het clientbesturingssysteem.

  • Zorg ervoor dat de browser of HTTPS-client een geldig basiscertificaat bevat. Firefox en sommige andere browsers hebben mogelijk speciaal certificeringsbeleid.

  • Zorg ervoor dat het URL-doeltype in de toepassingsregel betrekking heeft op het juiste pad en alle andere hyperlinks die zijn ingesloten op de HTML-doelpagina. U kunt jokertekens gebruiken voor een eenvoudige dekking van het hele vereiste URL-pad.

Volgende stappen