Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La SKU de Application Gateway v2 presenta el uso de certificados raíz de confianza para permitir conexiones TLS con los servidores back-end. Esta disposición elimina el uso de certificados de autenticación (certificados individuales Leaf) que eran necesarios en la SKU v1. El certificado raíz es un certificado raíz en formato X.509 codificado en Base-64 (.CER) del servidor de certificados backend. Identifica la entidad de certificación raíz (CA) que emitió el certificado de servidor y el certificado de servidor se usa para la comunicación TLS/SSL.
Application Gateway confía en el certificado del sitio web de forma predeterminada si está firmado por una entidad de certificación conocida (por ejemplo, GoDaddy o DigiCert). No es necesario cargar explícitamente el certificado raíz en ese caso. Para obtener más información, consulte Introducción a la terminación TLS y a TLS de extremo a extremo con Application Gateway. Sin embargo, si tiene un entorno de desarrollo y pruebas y no quiere comprar un certificado firmado por la ENTIDAD de certificación verificada, puede crear su propia CA raíz personalizada y un certificado hoja firmado por esa ENTIDAD de certificación raíz.
Nota:
Los certificados autogenerados no son de confianza de forma predeterminada y pueden ser difíciles de mantener. Además, pueden usar conjuntos hash y de cifrado no actualizados que podrían no ser seguros. Para mejorar la seguridad, compre un certificado firmado por una entidad de certificación conocida.
Puede usar las siguientes opciones para generar el certificado privado para las conexiones TLS de back-end.
Use la herramienta generador de certificados privados con un solo clic. Con el nombre de dominio (nombre común) que se proporciona, esta herramienta realiza los mismos pasos que se documentan en este artículo para generar certificados raíz y servidor. Con los archivos de certificado generados, puede cargar inmediatamente el certificado raíz (. ARCHIVO CER) en la configuración de back-end de la puerta de enlace y la cadena de certificados correspondiente (. PFX) al servidor back-end. La contraseña del archivo PFX también se proporciona en el archivo ZIP descargado.
Use comandos openSSL para personalizar y generar certificados según sus necesidades. Siga las instrucciones de este artículo si desea hacerlo por su cuenta.
En este artículo, aprenderá a:
- Creación de su propia entidad de certificación personalizada
- Creación de un certificado autofirmado firmado por la entidad de certificación personalizada
- Cargar un certificado raíz autofirmado en un Application Gateway para autenticar el servidor backend
Prerrequisitos
OpenSSL en un equipo que ejecuta Windows o Linux
Aunque podría haber otras herramientas disponibles para la administración de certificados, en este tutorial se usa OpenSSL. Puede encontrar OpenSSL agrupado con muchas distribuciones de Linux, como Ubuntu.
Un servidor web
Por ejemplo, Apache, IIS o NGINX para probar los certificados.
SKU de Application Gateway v2
Si no tiene una puerta de enlace de aplicaciones existente, consulte Inicio rápido: Tráfico web directo con Azure Application Gateway: Azure Portal.
Creación de un certificado de entidad de certificación raíz
Cree el certificado de entidad de certificación raíz mediante OpenSSL.
Creación de la clave raíz
Inicie sesión en el equipo donde está instalado OpenSSL y ejecute el siguiente comando. Esto crea una clave cifrada.
openssl ecparam -out contoso.key -name prime256v1 -genkey
Crear un certificado raíz y firmarlo automáticamente
Use el comando siguiente para generar la solicitud de firma de certificado (CSR).
openssl req -new -sha256 -key contoso.key -out contoso.csr
Cuando se le solicite, escriba la contraseña de la clave raíz y la información de la organización para la entidad de certificación personalizada, como País o región, Estado, Organización, UO y el nombre de dominio completo (este es el dominio del emisor).
Use el siguiente comando para generar el certificado raíz.
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
Los comandos anteriores crean el certificado raíz. Lo usará para firmar el certificado de servidor.
Crear un certificado de servidor
A continuación, creará un certificado de servidor mediante OpenSSL.
Creación de la clave del certificado
Use el siguiente comando para generar la clave para el certificado de servidor.
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
Crear el CSR (solicitud de firma de certificados)
El CSR es una clave pública que se asigna a una entidad de certificación al solicitar un certificado. La ENTIDAD de certificación emite el certificado para esta solicitud específica.
Nota:
El CN (nombre común) del certificado de servidor debe ser diferente del dominio del emisor. Por ejemplo, en este caso, el CN del emisor es www.contoso.com
y el CN del certificado de servidor es www.fabrikam.com
.
Use el siguiente comando para generar el CSR:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
Cuando se le solicite, escriba la contraseña de la clave raíz y la información de la organización para la CA personalizada: País o región, Estado, Organización, UO y el nombre de dominio completo. Este es el dominio del sitio web y debe ser diferente del emisor.
Generar el certificado con el CSR y la clave y firmarlo con la clave raíz de la entidad de certificación
Use el comando siguiente para crear el certificado:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
Comprobación del certificado recién creado
Use el siguiente comando para imprimir la salida del archivo CRT y comprobar su contenido:
openssl x509 -in fabrikam.crt -text -noout
Compruebe los archivos del directorio y asegúrese de que tiene los archivos siguientes:
- contoso.crt
- contoso.key
- fabrikam.crt
- fabrikam.key
Configuración del certificado en la configuración de TLS del servidor web
En el servidor web, configure TLS mediante los archivos fabrikam.crt y fabrikam.key. Si el servidor web no puede tomar dos archivos, puede combinarlos en un único archivo .pem o .pfx mediante comandos OpenSSL.
IIS
Para obtener instrucciones sobre cómo importar el certificado y cargarlos como certificado de servidor en IIS, vea HOW TO: Install Imported Certificates on a Web Server in Windows Server 2003.
Para obtener instrucciones de enlace TLS, consulte Configuración de SSL en IIS 7.
Apache
La siguiente configuración es un host virtual de ejemplo configurado para SSL en 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
La siguiente configuración es un bloque de servidor NGINX de ejemplo con la configuración de TLS:
Acceso al servidor para comprobar la configuración
Agregue el certificado raíz al almacén raíz de confianza de su equipo. Al acceder al sitio web, asegúrese de que toda la cadena de certificados se ve en el explorador.
Nota:
Se supone que DNS se ha configurado para que apunte el nombre del servidor web (en este ejemplo,
www.fabrikam.com
) a la dirección IP del servidor web. Si no es así, puede editar el archivo de hosts para resolver el nombre.Vaya a su sitio web y haga clic en el icono de bloqueo en el cuadro de dirección del explorador para comprobar la información del sitio y el certificado.
Comprobación de la configuración con OpenSSL
O bien, puede usar OpenSSL para comprobar el certificado.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
Carga del certificado raíz en la configuración HTTP de Application Gateway
Para cargar el certificado en Application Gateway, debe exportar el certificado .crt a un formato de .cer codificado en Base-64. Dado que .crt ya contiene la clave pública en el formato codificado en base 64, simplemente cambie el nombre de la extensión de archivo de .crt a .cer.
Portal de Azure
Para cargar el certificado raíz de confianza desde el portal, seleccione Configuración de Backend y seleccione HTTPS en el Protocolo Backend.
Azure PowerShell
O bien, puede usar la CLI de Azure o Azure PowerShell para cargar el certificado raíz. El código siguiente es un ejemplo de Azure PowerShell.
Nota:
En el ejemplo siguiente se agrega un certificado raíz de confianza a la puerta de enlace de aplicaciones, se crea una nueva configuración HTTP y se agrega una nueva regla, suponiendo que el grupo de back-end y el agente de escucha ya existen.
## 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
Comprobación del estado del back-end de Application Gateway
- Haga clic en la Estado de back-end vista de la puerta de enlace de aplicaciones para comprobar si el sondeo está en buen estado.
- Debería ver que el estado es Saludable para el sondeo HTTPS.
Pasos siguientes
Para obtener más información sobre SSL\TLS en Application Gateway, consulte Introducción a la terminación TLS y a TLS de extremo a extremo con Application Gateway.