Sdílet prostřednictvím


Vygenerujte certifikát, který je podepsán svým držitelem, s využitím vlastní kořenové certifikační autority v Azure Application Gateway.

Skladová položka Application Gateway v2 zavádí použití důvěryhodných kořenových certifikátů pro povolení připojení TLS k serverům na backendu. Toto ustanovení odstraňuje použití ověřovacích certifikátů (jednotlivých listových certifikátů), které byly vyžadovány ve verzi SKU v1. Kořenový certifikát je kořenový certifikát ve formátu X.509 s kódováním Base-64 (.CER) z back-end certifikačního serveru. Identifikuje kořenovou certifikační autoritu (CA), která vydala certifikát serveru, a certifikát serveru se pak použije pro komunikaci TLS/SSL.

Služba Application Gateway ve výchozím nastavení důvěřuje certifikátu vašeho webu, pokud je podepsaná dobře známou certifikační autoritou (například GoDaddy nebo DigiCert). V takovém případě nemusíte explicitně nahrávat kořenový certifikát. Další informace najdete v tématu Přehled ukončení protokolu TLS a koncového šifrování TLS se službou Application Gateway. Pokud ale máte vývojové/testovací prostředí a nechcete si koupit ověřený certifikát podepsaný certifikační autoritou, můžete vytvořit vlastní kořenovou certifikační autoritu a listový certifikát podepsaný danou kořenovou certifikační autoritou.

Poznámka:

Automaticky generované certifikáty nejsou ve výchozím nastavení důvěryhodné a může být obtížné je udržovat. Mohou také používat zastaralé hash a šifrovací sady, které nemusí být silné. Kvůli lepšímu zabezpečení si kupte certifikát podepsaný dobře známou certifikační autoritou.

K vygenerování privátního certifikátu pro připojení TLS back-endu můžete použít následující možnosti.

  1. Použijte nástroj pro generování privátních certifikátů jedním kliknutím . Pomocí názvu domény (běžný název), který zadáte, tento nástroj provede stejné kroky jako v tomto článku a vygeneruje certifikáty root a serveru. S vygenerovanými soubory certifikátů můžete okamžitě nahrát kořenový certifikát (. SOUBOR CER) do back-endového nastavení brány a odpovídajícího řetězu certifikátů (. PFX) na back-endový server. Heslo pro soubor PFX je také zadáno ve staženého souboru ZIP.

  2. Pomocí příkazů OpenSSL můžete přizpůsobit a generovat certifikáty podle vašich potřeb. Pokud to chcete udělat úplně sami, pokračujte podle pokynů v tomto článku.

V tomto článku se dozvíte, jak:

  • Vytvoření vlastní certifikační autority
  • Vytvořit samopodepsaný certifikát podepsaný vaší vlastní certifikační autoritou
  • Nahrání kořenového certifikátu podepsaného svým držitelem do služby Application Gateway pro ověření back-endového serveru

Požadavky

Vytvořit kořenový CA certifikát

Vytvořte kořenový certifikát certifikační autority pomocí OpenSSL.

Vytvoření kořenového klíče

  1. Přihlaste se ke svému počítači, na kterém je nainstalovaný OpenSSL, a spusťte následující příkaz. Tím se vytvoří šifrovaný klíč.

    openssl ecparam -out contoso.key -name prime256v1 -genkey
    

Vytvořte kořenový certifikát a podepište ho sami.

  1. Pomocí následujícího příkazu vygenerujte žádost o podepsání certifikátu (CSR).

    openssl req -new -sha256 -key contoso.key -out contoso.csr
    
  2. Po zobrazení výzvy zadejte heslo pro kořenový klíč a informace o organizaci pro vlastní certifikační autoritu, jako je země/oblast, stát, organizace, organizační jednotky a plně kvalifikovaný název domény (jedná se o doménu vystavitele).

    vytvoření kořenového certifikátu

  3. Pomocí následujícího příkazu vygenerujte kořenový certifikát.

    openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
    

    Předchozí příkazy vytvoří kořenový certifikát. Použijete ho k podepsání certifikátu serveru.

Vytvoření certifikátu serveru

V dalším kroku vytvoříte certifikát serveru pomocí OpenSSL.

Vytvoření klíče certifikátu

Pomocí následujícího příkazu vygenerujte klíč pro certifikát serveru.

openssl ecparam -out fabrikam.key -name prime256v1 -genkey

Vytvoření žádosti o podepsání certifikátu (CSR)

CSR je veřejný klíč, který je udělen certifikační autoritě při vyžádání certifikátu. Certifikační autorita vydá certifikát pro tento konkrétní požadavek.

Poznámka:

CN (běžný název) pro certifikát serveru se musí lišit od domény vystavitele. V tomto případě je například CN pro vystavitele www.contoso.com a cn certifikátu serveru je www.fabrikam.com.

  1. K vygenerování CSR použijte následující příkaz:

    openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
    
  2. Po zobrazení výzvy zadejte heslo pro kořenový klíč a organizační údaje pro vlastní certifikační autoritu: země/oblast, stát, Org, OU a plně kvalifikovaný název domény. Toto je doména webové stránky a měla by být odlišná od domény vystavitele.

    Serverový certifikát

Vygenerujte certifikát pomocí CSR a klíče a podepište ho kořenovým klíčem certifikační autority.

  1. K vytvoření certifikátu použijte následující příkaz:

    openssl x509 -req -in fabrikam.csr -CA  contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
    

Ověření nově vytvořeného certifikátu

  1. Pomocí následujícího příkazu vytiskněte výstup souboru CRT a ověřte jeho obsah:

    openssl x509 -in fabrikam.crt -text -noout
    

    ověření certifikátu

  2. Ověřte soubory v adresáři a ujistěte se, že máte následující soubory:

    • contoso.crt
    • contoso.key
    • fabrikam.crt
    • fabrikam.key

Konfigurace certifikátu v nastavení TLS webového serveru

Na webovém serveru nakonfigurujte protokol TLS pomocí souborů fabrikam.crt a fabrikam.key. Pokud váš webový server nemůže vzít dva soubory, můžete je zkombinovat do jednoho souboru .pem nebo .pfx pomocí příkazů OpenSSL.

IIS

Pokyny k importu certifikátu a jejich nahrání jako certifikátu serveru ve službě IIS najdete v tématu POSTUPY: Instalace importovaných certifikátů na webový server v systému Windows Server 2003.

Pokyny k vazbě protokolu TLS najdete v tématu Jak nastavit protokol SSL ve službě IIS 7.

Apač

Následující konfigurace je příkladem virtuálního hostitele nakonfigurovaného pro SSL v 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

Následující konfigurace je příkladem bloku serveru NGINX s konfigurací protokolu TLS:

NGINX s protokolem TLS

Přístup k serveru a ověření konfigurace

  1. Přidejte kořenový certifikát do důvěryhodného kořenového úložiště vašeho počítače. Při přístupu k webu se ujistěte, že se v prohlížeči zobrazí celý řetěz certifikátů.

    důvěryhodných kořenových certifikátů

    Poznámka:

    Předpokládá se, že dns je nakonfigurovaný tak, aby odkazoval na název webového serveru (v tomto příkladu www.fabrikam.com) na IP adresu vašeho webového serveru. Pokud ne, můžete upravit soubor hostitelů k vyřešení názvu.

  2. Přejděte na svůj web a kliknutím na ikonu zámku v poli Adresa prohlížeče ověřte informace o webu a certifikátu.

Ověření konfigurace pomocí OpenSSL

Nebo můžete certifikát ověřit pomocí OpenSSL.

openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts

ověření certifikátu OpenSSL

Nahrání kořenového certifikátu do nastavení HTTP služby Application Gateway

Pokud chcete nahrát certifikát ve službě Application Gateway, musíte certifikát .crt exportovat do .cer formátu zakódovaný ve formátu Base-64. Vzhledem k tomu, že soubor .crt již obsahuje veřejný klíč ve formátu kódování base-64, přejmenujte příponu souboru z .crt na .cer.

portál Azure

Pokud chcete nahrát důvěryhodný kořenový certifikát z portálu, vyberte nastavení back-endu a v protokoluback-endu vyberte HTTPS .

snímek obrazovky s přidáním certifikátu pomocí portálu

Azure PowerShell

Nebo můžete k nahrání kořenového certifikátu použít Azure CLI nebo Azure PowerShell. Následující kód je ukázka Azure PowerShellu.

Poznámka:

Následující ukázka přidá důvěryhodný kořenový certifikát do aplikační brány, vytvoří nové nastavení HTTP a přidá nové pravidlo, za předpokladu, že fond provozních jednotek a poslechový modul už existují.

## 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

Ověření stavu back-endu služby Application Gateway

  1. Klikněte na stav Back-end zobrazení aplikační brány a zkontrolujte, jestli je sonda v pořádku.
  2. Měli byste vidět, že stav sondy HTTPS je zdravý.

sondy HTTPS

Další kroky

Další informace o protokolu SSL\TLS ve službě Application Gateway najdete v tématu Přehled ukončení protokolu TLS a koncového šifrování TLS se službou Application Gateway.