Vygenerování certifikátu podepsaného svým držitelem (self-signed certificate) s využitím vlastní kořenové certifikační autority ve službě Azure Application Gateway

Skladová položka služby Application Gateway v2 zavádí použití důvěryhodných kořenových certifikátů k povolení připojení TLS k back-endovým serverům. Toto zřízení odebere použití ověřovacích certifikátů (jednotlivých listových certifikátů), které byly vyžadovány ve skladové pořizovací po straně v1. Kořenový certifikát je X.509 s kódováním Base-64(. CER) naformátuje kořenový certifikát z back-endového 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í back-endového protokolu TLS můžete použít následující možnosti.

  1. Použijte nástroj pro generátor 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ření certifikátu podepsaného svým držitelem podepsaného 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

  • OpenSSL na počítači s Windows nebo Linuxem

    I když pro správu certifikátů můžou být k dispozici další nástroje, v tomto kurzu se používá OpenSSL. OpenSSL, který je součástí mnoha distribucí Linuxu, jako je Ubuntu, najdete.

  • Webový server

    Například Apache, IIS nebo NGINX k otestování certifikátů.

  • Skladová položka služby Application Gateway v2

    Pokud nemáte existující aplikační bránu, přečtěte si článek Rychlý start: Směrování webového provozu pomocí služby Aplikace Azure Gateway – Azure Portal.

Vytvoření kořenového certifikátu certifikační autority

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ření kořenového certifikátu a jeho podepsání svým držitelem

  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).

    create root certificate

  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 certifikát serveru je CN .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 informace o organizaci pro vlastní certifikační autoritu: země/oblast, stát, organizaci, organizační jednotky a plně kvalifikovaný název domény. Toto je doména webu a měla by se lišit od vystavitele.

    Server certificate

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
    

    Certificate verification

  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 naleznete v tématu Nastavení ssl ve službě IIS 7.

Apache

Následující konfigurace je ukázkový virtuální hostitel nakonfigurovaný 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 with 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ů.

    Trusted root certificates

    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ů a přeložit název.

  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

OpenSSL certificate verification

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 formátu .cer s kódováním 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 back-endový Nastavení a v back-endovém protokolu vyberte HTTPS.

Screenshot of adding a certificate using the portal.

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 back-endový fond a naslouchací proces 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. Kliknutím na zobrazení Stavu back-endu služby Application Gateway zkontrolujte, jestli je sonda v pořádku.
  2. Měli byste vidět, že stav sondy HTTPS je v pořádku .

HTTPS probe

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.