Een zelfondertekend certificaat van Azure Application Gateway genereren met een aangepast basiscertificaat
De Application Gateway v2-SKU introduceert het gebruik van vertrouwde basiscertificaten om TLS-verbindingen met de back-endservers toe te staan. Met deze inrichting wordt het gebruik van verificatiecertificaten (afzonderlijke Leaf-certificaten) verwijderd die vereist zijn in de v1-SKU. Het basiscertificaat is een met Base-64 gecodeerde X.509(. CER) maak het basiscertificaat van de back-endcertificaatserver op. Het identificeert de basiscertificeringsinstantie (CA) die het servercertificaat heeft uitgegeven en het servercertificaat wordt vervolgens gebruikt voor de TLS/SSL-communicatie.
Application Gateway vertrouwt het certificaat van uw website standaard als het is ondertekend door een bekende CERTIFICERINGsinstantie (bijvoorbeeld GoDaddy of DigiCert). In dat geval hoeft u het basiscertificaat niet expliciet te uploaden. Zie Overzicht van TLS-beëindiging en end-to-end TLS met Application Gateway voor meer informatie. Als u echter een ontwikkel-/testomgeving hebt en u geen geverifieerd ca-ondertekend certificaat wilt kopen, kunt u uw eigen aangepaste basis-CA en een bladcertificaat maken dat is ondertekend door die basis-CA.
Notitie
Zelf gegenereerde certificaten worden niet standaard vertrouwd en kunnen moeilijk te onderhouden zijn. Ze kunnen ook verouderde hash- en coderingssuites gebruiken die mogelijk niet sterk zijn. Koop voor betere beveiliging een certificaat dat is ondertekend door een bekende certificeringsinstantie.
U kunt de volgende opties gebruiken om uw privécertificaat te genereren voor back-end TLS-verbindingen.
Gebruik het hulpprogramma voor het genereren van persoonlijke certificaten met één klik. Met behulp van de domeinnaam (algemene naam) die u opgeeft, voert dit hulpprogramma dezelfde stappen uit als beschreven in dit artikel voor het genereren van basis- en servercertificaten. Met de gegenereerde certificaatbestanden kunt u het basiscertificaat direct uploaden (. CER)-bestand naar de back-endinstelling van uw gateway en de bijbehorende certificaatketen (. PFX) naar de back-endserver. Het wachtwoord voor het PFX-bestand wordt ook opgegeven in het gedownloade ZIP-bestand.
Gebruik OpenSSL-opdrachten om certificaten aan te passen en te genereren op basis van uw behoeften. Volg de instructies in dit artikel als u dit helemaal zelf wilt doen.
In dit artikel leert u het volgende:
- Uw eigen aangepaste certificeringsinstantie maken
- Een zelfondertekend certificaat maken dat is ondertekend door uw aangepaste CA
- Een zelfondertekend basiscertificaat uploaden naar een Application Gateway om de back-endserver te verifiëren
Vereisten
OpenSSL op een computer met Windows of Linux
Hoewel er andere hulpprogramma's beschikbaar zijn voor certificaatbeheer, gebruikt deze zelfstudie OpenSSL. OpenSSL is gebundeld met veel Linux-distributies, zoals Ubuntu.
Een webserver
Bijvoorbeeld Apache, IIS of NGINX om de certificaten te testen.
Een Application Gateway v2-SKU
Als u geen bestaande toepassingsgateway hebt, raadpleegt u quickstart: Webverkeer omleiden met Azure-toepassing Gateway - Azure Portal.
Een basis-CA-certificaat maken
Maak uw basis-CA-certificaat met behulp van OpenSSL.
De hoofdsleutel maken
Meld u aan bij uw computer waarop OpenSSL is geïnstalleerd en voer de volgende opdracht uit. Hiermee maakt u een versleutelde sleutel.
openssl ecparam -out contoso.key -name prime256v1 -genkey
Een basiscertificaat maken en het zelf ondertekenen
Gebruik de volgende opdracht om de aanvraag voor certificaatondertekening (CSR) te genereren.
openssl req -new -sha256 -key contoso.key -out contoso.csr
Wanneer u hierom wordt gevraagd, typt u het wachtwoord voor de hoofdsleutel en de organisatiegegevens voor de aangepaste CERTIFICERINGsinstantie, zoals Land/Regio, Staat, Organisatie,OE en de volledig gekwalificeerde domeinnaam (dit is het domein van de verlener).
Gebruik de volgende opdracht om het basiscertificaat te genereren.
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
Met de vorige opdrachten maakt u het basiscertificaat. U gebruikt dit om uw servercertificaat te ondertekenen.
Een servercertificaat maken
Vervolgens maakt u een servercertificaat met behulp van OpenSSL.
De sleutel van het certificaat maken
Gebruik de volgende opdracht om de sleutel voor het servercertificaat te genereren.
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
De CSR maken (aanvraag voor certificaatondertekening)
De CSR is een openbare sleutel die aan een CA wordt gegeven bij het aanvragen van een certificaat. De CA geeft het certificaat voor deze specifieke aanvraag uit.
Notitie
De CN (algemene naam) voor het servercertificaat moet afwijken van het domein van de verlener. In dit geval is www.contoso.com
de CN voor de verlener bijvoorbeeld en de CN van het servercertificaat.www.fabrikam.com
Gebruik de volgende opdracht om de CSR te genereren:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
Wanneer u hierom wordt gevraagd, typt u het wachtwoord voor de hoofdsleutel en de organisatiegegevens voor de aangepaste CA: Land/Regio, Staat, Organisatie,OE en de volledig gekwalificeerde domeinnaam. Dit is het domein van de website en moet afwijken van de uitgever.
Genereer het certificaat met de CSR en de sleutel en onderteken het met de basissleutel van de CA
Gebruik de volgende opdracht om het certificaat te maken:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
Het zojuist gemaakte certificaat controleren
Gebruik de volgende opdracht om de uitvoer van het CRT-bestand af te drukken en de inhoud ervan te controleren:
openssl x509 -in fabrikam.crt -text -noout
Controleer de bestanden in uw map en zorg ervoor dat u de volgende bestanden hebt:
- contoso.crt
- contoso.key
- fabrikam.crt
- fabrikam.key
Het certificaat configureren in de TLS-instellingen van uw webserver
Configureer TLS op uw webserver met behulp van de bestanden fabrikam.crt en fabrikam.key. Als uw webserver geen twee bestanden kan gebruiken, kunt u ze combineren tot één PEM- of PFX-bestand met behulp van OpenSSL-opdrachten.
IIS
Zie PROCEDURE: Geïmporteerde certificaten installeren op een webserver in Windows Server 2003 voor instructies over het importeren en uploaden als servercertificaat in IIS.
Zie SSL instellen op IIS 7 voor instructies voor TLS-binding.
Apache
De volgende configuratie is een voorbeeld van een virtuele host die is geconfigureerd voor SSL in 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
De volgende configuratie is een voorbeeld van een NGINX-serverblok met TLS-configuratie:
Toegang tot de server om de configuratie te controleren
Voeg het basiscertificaat toe aan het vertrouwde basisarchief van uw computer. Wanneer u de website opent, moet u ervoor zorgen dat de hele certificaatketen wordt weergegeven in de browser.
Notitie
Er wordt van uitgegaan dat DNS is geconfigureerd om de webservernaam (in dit voorbeeld
www.fabrikam.com
) te laten verwijzen naar het IP-adres van uw webserver. Zo niet, dan kunt u het hosts-bestand bewerken om de naam op te lossen.Blader naar uw website en klik op het vergrendelingspictogram in het adresvak van uw browser om de site- en certificaatgegevens te controleren.
De configuratie controleren met OpenSSL
U kunt ook OpenSSL gebruiken om het certificaat te verifiëren.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
Het basiscertificaat uploaden naar de HTTP-Instellingen van Application Gateway
Als u het certificaat wilt uploaden in Application Gateway, moet u het CRT-certificaat exporteren naar een CER-indeling met Base-64-codering. Aangezien .crt de openbare sleutel al bevat in de met base-64 gecodeerde indeling, wijzigt u de bestandsextensie van .crt in .cer.
Azure Portal
Als u het vertrouwde basiscertificaat vanuit de portal wilt uploaden, selecteert u de back-end-Instellingen en selecteert u HTTPS in het back-endprotocol.
Azure PowerShell
U kunt ook Azure CLI of Azure PowerShell gebruiken om het basiscertificaat te uploaden. De volgende code is een Azure PowerShell-voorbeeld.
Notitie
Het volgende voorbeeld voegt een vertrouwd basiscertificaat toe aan de toepassingsgateway, maakt een nieuwe HTTP-instelling en voegt een nieuwe regel toe, ervan uitgaande dat de back-endpool en de listener al bestaan.
## 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
De back-endstatus van de toepassingsgateway controleren
- Klik op de weergave Back-endstatus van uw toepassingsgateway om te controleren of de test in orde is.
- U ziet dat de status in orde is voor de HTTPS-test.
Volgende stappen
Zie Overzicht van TLS-beëindiging en end-to-end TLS met Application Gateway voor meer informatie over SSL\TLS in Application Gateway.