Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Anwendungsgateway-SKU v2 führt die Verwendung vertrauenswürdiger Stammzertifikate ein, um TLS-Verbindungen mit den Back-End-Servern zuzulassen. Diese Bereitstellung entfernt die Verwendung von Authentifizierungszertifikaten (einzelne Leaf-Zertifikate), die in der v1-SKU erforderlich waren. Das Stammzertifikat ist ein Base-64-codiertes X.509 (.CER) Format-Stammzertifikat vom Backend-Zertifikatserver. Es identifiziert die Stammzertifizierungsstelle, die das Serverzertifikat ausgestellt hat, und das Serverzertifikat wird dann für die TLS/SSL-Kommunikation verwendet.
Das Anwendungsgateway vertraut dem Zertifikat Ihrer Website standardmäßig, wenn es von einer bekannten Zertifizierungsstelle signiert ist (z. B. GoDaddy oder DigiCert). In diesem Fall müssen Sie das Stammzertifikat nicht explizit hochladen. Weitere Informationen finden Sie unter Übersicht über TLS-Beendigung und End-to-End TLS mit Anwendungsgateway. Wenn Sie jedoch über eine Entwicklungs-/Testumgebung verfügen und kein überprüftes Zertifizierungsstellenzertifikat erwerben möchten, können Sie ihre eigene benutzerdefinierte Stammzertifizierungsstelle und ein blattbasiertes Zertifikat erstellen, das von dieser Stammzertifizierungsstelle signiert ist.
Hinweis
Selbst generierte Zertifikate sind standardmäßig nicht vertrauenswürdig und können schwierig verwaltet werden. Außerdem kann es sein, dass für sie veraltete Hash- und Verschlüsselungssammlungen verwendet werden, die möglicherweise nicht stark sind. Um eine bessere Sicherheit zu erreichen, sollten Sie ein Zertifikat kaufen, das von einer bekannten Zertifizierungsstelle signiert ist.
Sie können die folgenden Optionen verwenden, um Ihr privates Zertifikat für Back-End-TLS-Verbindungen zu generieren.
Verwenden Sie das Tool zum Erstellen eines privaten Zertifikats mit nur einem Klick. Mithilfe des von Ihnen bereitgestellten Domänennamens (gemeinsamer Name) führt dieses Tool die gleichen Schritte wie in diesem Artikel beschrieben aus, um Stamm- und Serverzertifikate zu generieren. Mit den generierten Zertifikatdateien können Sie die Stammzertifikatsdatei (.CER) sofort in die Back-End-Einstellungen Ihres Gateways hochladen und die entsprechende Zertifikatkette (.PFX) auf den Back-End-Server übertragen. Das Kennwort für die PFX-Datei wird auch in der heruntergeladenen ZIP-Datei angegeben.
Verwenden Sie OpenSSL-Befehle, um Zertifikate entsprechend Ihren Anforderungen anzupassen und zu generieren. Folgen Sie den Anweisungen in diesem Artikel weiterhin, wenn Sie dies ganz alleine tun möchten.
In diesem Artikel erfahren Sie, wie man:
- Erstellen Einer eigenen benutzerdefinierten Zertifizierungsstelle
- Erstellen eines selbstsignierten Zertifikats, das von Ihrer benutzerdefinierten Zertifizierungsstelle signiert ist
- Hochladen eines selbstsignierten Stammzertifikats in ein Anwendungsgateway zum Authentifizieren des Back-End-Servers
Voraussetzungen
OpenSSL auf einem Computer unter Windows oder Linux
Obwohl es andere Tools für die Zertifikatverwaltung gibt, verwendet dieses Lernprogramm OpenSSL. Sie finden OpenSSL gebündelt mit vielen Linux-Distributionen wie Ubuntu.
Ein Webserver
Beispielsweise Apache, IIS oder NGINX, um die Zertifikate zu testen.
Eine Application Gateway v2-SKU
Wenn Sie nicht über ein vorhandenes Anwendungsgateway verfügen, lesen Sie die Schnellstartanleitung: Direkter Webdatenverkehr mit Azure-Anwendungsgateway – Azure-Portal.
Erstellen eines Stammzertifikats der Zertifizierungsstelle
Erstellen Sie Ihr Stammzertifikat der Zertifizierungsstelle mit OpenSSL.
Erstellen des Stammschlüssels
Melden Sie sich bei Ihrem Computer an, auf dem OpenSSL installiert ist, und führen Sie den folgenden Befehl aus. Dadurch wird ein verschlüsselter Schlüssel erstellt.
openssl ecparam -out contoso.key -name prime256v1 -genkey
Erstellen eines Stammzertifikats und Selbst signieren
Verwenden Sie den folgenden Befehl, um die Zertifikatsignaturanforderung (Certificate Signing Request, CSR) zu generieren.
openssl req -new -sha256 -key contoso.key -out contoso.csr
Geben Sie bei Aufforderung das Kennwort für den Stammschlüssel und die Organisationsinformationen für die benutzerdefinierte CA ein, z. B. Land/Region, Bundesland, Organisation, Organisationseinheit und vollständig qualifizierter Domainname (dies ist die Domäne des Ausstellers).
Verwenden Sie den folgenden Befehl, um das Stammzertifikat zu generieren.
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
Die vorherigen Befehle erstellen das Stammzertifikat. Sie verwenden dies, um Ihr Serverzertifikat zu signieren.
Erstellen eines Serverzertifikats
Als Nächstes erstellen Sie ein Serverzertifikat mit OpenSSL.
Erstellen des Zertifikatschlüssels
Verwenden Sie den folgenden Befehl, um den Schlüssel für das Serverzertifikat zu generieren.
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
CSR (Zertifikatsignierungsanforderung) erstellen
Die CSR ist ein öffentlicher Schlüssel, der bei der Anforderung eines Zertifikats an eine Zertifizierungsstelle übergeben wird. Die Zertifizierungsstelle gibt das Zertifikat für diese bestimmte Anforderung aus.
Hinweis
Der CN (Gemeinsamer Name) für das Serverzertifikat muss sich von der Domäne des Ausstellers unterscheiden. Zum Beispiel ist in diesem Fall der CN für den Aussteller www.contoso.com
, und das CN des Serverzertifikats ist www.fabrikam.com
.
Verwenden Sie den folgenden Befehl, um die CSR zu generieren:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
Wenn Sie dazu aufgefordert werden, geben Sie das Kennwort für den Stammschlüssel und die Organisationsinformationen für die benutzerdefinierte Zertifizierungsstelle ein: Land/Region, Bundesland, Organisation, Organisationseinheit sowie den vollqualifizierten Domänennamen. Dies ist die Domäne der Website und sollte sich von dem Aussteller unterscheiden.
Generieren Sie das Zertifikat mit der CSR und dem Schlüssel, und signieren Sie es mit dem Stammschlüssel der Zertifizierungsstelle.
Verwenden Sie den folgenden Befehl, um das Zertifikat zu erstellen:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
Überprüfen des neu erstellten Zertifikats
Verwenden Sie den folgenden Befehl, um die Ausgabe der CRT-Datei zu drucken und deren Inhalt zu überprüfen:
openssl x509 -in fabrikam.crt -text -noout
Überprüfen Sie die Dateien in Ihrem Verzeichnis, und stellen Sie sicher, dass Sie über die folgenden Dateien verfügen:
- contoso.crt
- contoso.key
- fabrikam.crt
- fabrikam.key
Konfigurieren des Zertifikats in den TLS-Einstellungen Ihres Webservers
Konfigurieren Sie in Ihrem Webserver TLS mithilfe der Dateien fabrikam.crt und fabrikam.key. Wenn Ihr Webserver keine zwei Dateien aufnehmen kann, können Sie sie mit openSSL-Befehlen zu einer einzelnen PEM- oder PFX-Datei kombinieren.
IIS
Anweisungen zum Importieren und Hochladen von Zertifikaten als Serverzertifikat auf IIS finden Sie unter HOW TO: Install Imported Certificates on a Web Server in Windows Server 2003.
Anweisungen zur TLS-Bindung finden Sie unter Einrichten von SSL unter IIS 7.
Apache
Die folgende Konfiguration ist ein Beispiel für einen virtuellen Host, der für SSL in Apache konfiguriert ist:
<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
Die folgende Konfiguration ist ein Beispiel für einen NGINX-Serverblock mit TLS-Konfiguration:
Zugreifen auf den Server, um die Konfiguration zu überprüfen
Fügen Sie das Stammzertifikat zum vertrauenswürdigen Stammspeicher Ihres Computers hinzu. Stellen Sie beim Zugriff auf die Website sicher, dass die gesamte Zertifikatkette im Browser angezeigt wird.
Hinweis
Es wird angenommen, dass DNS so konfiguriert wurde, dass der Webservername (in diesem Beispiel
www.fabrikam.com
) auf die IP-Adresse Ihres Webservers verweist. Wenn nicht, können Sie die Hostdatei bearbeiten, um den Namen aufzulösen.Navigieren Sie zu Ihrer Website, und klicken Sie auf das Sperrsymbol im Adressfeld Ihres Browsers, um die Website- und Zertifikatinformationen zu überprüfen.
Überprüfen der Konfiguration mit OpenSSL
Sie können auch OpenSSL verwenden, um das Zertifikat zu überprüfen.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
Hochladen des Stammzertifikats in die HTTP-Einstellungen des Anwendungsgateways
Um das Zertifikat in das Anwendungsgateway hochzuladen, müssen Sie das CRT-Zertifikat in ein .cer Base-64-codiertes Format exportieren. Da CRT bereits den öffentlichen Schlüssel im base64-codierten Format enthält, benennen Sie einfach die Dateierweiterung von CRT in .cer um.
Azure-Portal
Um das vertrauenswürdige Stammzertifikat aus dem Portal hochzuladen, wählen Sie die Back-End-Einstellungen und https im Back-End-Protokoll aus.
Azure PowerShell
Sie können auch Azure CLI oder Azure PowerShell verwenden, um das Stammzertifikat hochzuladen. Der folgende Code ist ein Azure PowerShell-Beispiel.
Hinweis
Im folgenden Beispiel wird dem Anwendungsgateway ein vertrauenswürdiges Stammzertifikat hinzugefügt, eine neue HTTP-Einstellung erstellt und eine neue Regel hinzugefügt, vorausgesetzt, der Back-End-Pool und der Listener sind bereits vorhanden.
## 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
Überprüfen Sie den Backend-Zustand des Anwendungsgateways
- Klicken Sie auf die Back-End-Integrität-Ansicht Ihres Anwendungsgateways, um zu prüfen, ob der Test fehlerfrei ist.
- Sie sollten sehen, dass der Status für die HTTPS-Probe fehlerfrei ist.
Nächste Schritte
Weitere Informationen zu SSL\TLS im Anwendungsgateway finden Sie in einer Übersicht über TLS-Termination und End-to-End-TLS mit dem Anwendungsgateway.