Todos los productos
Search
Centro de documentos

Server Load Balancer:HTTPS Mutual Authentication

Última actualización: Sep 23, 2026

Habilite la autenticación mutua en ALB para exigir que tanto el cliente como el servidor comprueben la identidad del otro antes de establecer una conexión. Esto previene ataques de intermediario (man-in-the-middle) y accesos no autorizados en escenarios de alta seguridad, como transacciones financieras y atención médica.

Descripción general de la función

Por qué usar la autenticación mutua

La mayoría de las aplicaciones web utilizan autenticación unidireccional para establecer conexiones HTTPS. El cliente comprueba la identidad del servidor y se asegura de conectarse al destino correcto.

En las aplicaciones que requieren mayor seguridad, el servidor también debe comprobar la identidad del cliente. La autenticación mutua garantiza que solo los clientes autorizados accedan al servicio. De esta forma, se reducen riesgos como los ataques de intermediario y los accesos no autorizados.

Comparación entre la autenticación unidireccional y la mutua

Elemento

Autenticación unidireccional

Autenticación mutua

Archivos de certificado

Certificado de servidor:

  • Certificado de clave pública del servidor

  • Archivo de clave privada del servidor

  • Certificado de servidor:

    • Certificado de clave pública del servidor

    • Archivo de clave privada del servidor

  • Certificado de cliente:

    • Certificado de clave pública del cliente

    • Archivo de clave privada del cliente

  • Certificado de CA raíz

Proceso de handshake

image

image

Casos de uso

Transacciones financieras, atención médica, banca y pagos en línea; es decir, cualquier escenario donde el sistema deba comprobar la identidad del cliente además de la del servidor.

Si no necesita autenticar a los clientes, no es necesario utilizar la autenticación mutua.

Limitaciones

  • Solo las instancias de ALB Standard Edition y WAF-Enhanced Edition admiten la autenticación mutua. Las instancias de ALB Basic Edition no son compatibles con esta función.

  • Únicamente los listeners HTTPS admiten la autenticación mutua. Los listeners QUIC y HTTP no son compatibles con esta función.

Escenario de ejemplo

Una empresa desplegó una plataforma de transacciones en línea que inicialmente utilizaba solo autenticación HTTPS unidireccional. Dispositivos no autorizados intentaban acceder al sistema, lo cual generaba riesgos de filtración de datos y alteración de transacciones. Conforme creció el tráfico, la plataforma también enfrentó una mayor presión de rendimiento durante los picos.

Para resolver estos problemas, la empresa desplegó una instancia de ALB y habilitó la autenticación mutua.

  • ALB distribuye las solicitudes de los clientes entre los servidores backend. Esto garantiza un rendimiento estable y tiempos de respuesta rápidos incluso durante picos de alta concurrencia.

  • Con la autenticación mutua habilitada, todos los clientes deben proporcionar un certificado válido para establecer una conexión. Así se previenen los accesos no autorizados y se reduce el riesgo de filtración de datos o alteración de transacciones.

image

Requisitos previos

  • Usted purchased o uploaded un certificado de servidor en Certificate Management Service.

    Este tema utiliza como ejemplo un certificado de servidor adquirido en la consola de Certificate Management Service de Alibaba Cloud.

    Nota

    Al adquirir un certificado SSL, debe vincularlo a un nombre de dominio. Asegúrese de contar con un nombre de dominio válido y accesible.

  • Para la autenticación mutua, también necesita un certificado de CA. Usted puede purchase and enable a subordinate CA certificate (requiere cuota de certificados disponible) o upload un certificado de CA raíz o de CA subordinada autofirmado.

  • Usted created a VPC (VPC1) y created two ECS instances (ECS01 y ECS02) en VPC1. Los servicios de aplicación están desplegados en ambas instancias.

    Este ejemplo utiliza Alibaba Cloud Linux 3 como sistema operativo y Nginx para configurar el servicio HTTPS.

    Comandos de ejemplo para desplegar un servicio de prueba en ECS01

    1. Ejecute los siguientes comandos para instalar Nginx y desplegar una aplicación de prueba de ejemplo.

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS01." > index.html
    2. Para permitir que la instancia de ALB se comunique con los servidores backend mediante HTTPS, debe cargar el archivo del certificado de servidor en el servidor backend. Después, en el archivo de configuración de Nginx nginx.conf, configure el módulo de servicio HTTPS, especifique la ruta del archivo de certificado y guarde el archivo.

      vim /etc/nginx/nginx.conf

      A continuación se muestra un ejemplo de código:

      http {
          ...
          # Existing configuration
          
          # HTTPS service module
          server {
            listen       443 ssl;
            server_name  _;
            root         /usr/share/nginx/html;
      
              # Replace with the path to your server certificate file.
              ssl_certificate "/etc/pki/nginx/server.crt";
              # Replace with the path to your server certificate private key file.
              ssl_certificate_key "/etc/pki/nginx/private/server.key";
              
              ...
          }
      }
    3. Ejecute el siguiente comando para reiniciar el servicio de Nginx.

      systemctl restart nginx.service
  • Una ALB instance is created. Para utilizar la autenticación mutua o certificados SM, la edición de la instancia debe ser Standard Edition o WAF-enabled Edition.

  • Usted created a server group y agregó ECS01 y ECS02 como servidores backend.

    Si desea que la instancia de ALB se comunique con los servidores backend mediante HTTPS, seleccione HTTPS como protocolo de backend cuando cree el grupo de servidores. Además, asegúrese de que el servicio HTTPS esté desplegado en los servidores backend.

Procedimiento

Paso 1: Configurar el certificado de cliente

Debe preparar y exportar un certificado de cliente.

Este tema describe dos métodos para obtener un certificado de CA. Usted puede purchase un certificado de CA y solicitar un certificado de cliente en Certificate Management Service, o bien upload un certificado de CA autofirmado en Certificate Management Service.

1. Preparar un certificado de cliente

Desde la consola

Para obtener más información, consulte Apply for a private certificate.

  1. Inicie sesión en la consola de Certificate Management Service.

  2. En el panel de navegación izquierdo, elija Certificate Management > Private Certificate Management. En la página Private Certificate Management, seleccione la región donde se encuentra el servicio PCA.

  3. En la pestaña Private CAs, busque la CA intermedia de destino y haga clic en Apply for Certificate en la columna Actions.

  4. En el panel Apply for Certificate, configure los ajustes del certificado como se describe en la siguiente tabla y luego haga clic en Confirm.

    En este ejemplo, al solicitar un certificado de cliente, establezca Certificate Type en Client Certificate e introduzca un Personal Name para identificar de forma única al usuario del cliente. Puede conservar los valores predeterminados de other parameters o modificarlos según sea necesario.

    Después de enviar la solicitud, la CA privada emite el certificado de inmediato. Luego, haga clic en Certificates en la columna Actions de la CA intermedia para consultar el certificado emitido.

Autofirmado

  1. Inicie sesión en ECS01 y ejecute los siguientes comandos para generar un certificado de CA raíz autofirmado.

    Una instancia de ALB admite la autenticación mutua con un certificado de CA raíz autofirmado o con un certificado de CA intermedia autofirmado. Este ejemplo utiliza un certificado de CA raíz autofirmado.

    1. Ejecute el siguiente comando para crear una clave privada para el certificado de CA raíz:

      openssl genrsa -out root.key 4096
    2. Ejecute el siguiente comando para crear una solicitud de firma de certificado (CSR) para el certificado de CA raíz:

      openssl req -new -out root.csr -key root.key

      Introduzca la información obligatoria cuando el sistema la solicite. A continuación se muestra un ejemplo de código:

      Nota

      Asegúrese de que el Common Name del certificado de CA sea único y distinto del Common Name del certificado de servidor o del certificado de cliente.

      Country Name (2 letter code) [XX]:cn
      State or Province Name (full name) []:bj
      Locality Name (eg, city) [Default City]:bj
      Organization Name (eg, company) [Default Company Ltd]:alibaba
      Organizational Unit Name (eg, section) []:test
      Common Name (eg, your name or your servers hostname) []:root
      Email Address []:a****@example.com
      A challenge password []:
      An optional company name []:
    3. Ejecute el siguiente comando para crear el certificado de CA raíz:

      openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650

      Se devuelve el siguiente resultado:

      Signature ok
      subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = root, emailAddress = a****@example.com
      Getting Private Key
    4. Ejecute el comando ls para consultar el certificado de CA raíz generado root.crt y su clave privada root.key.

      Usted puede download estos archivos del certificado de CA raíz a su computadora para usarlos más adelante.

  2. Cargue el certificado de CA raíz autofirmado en Certificate Management Service.

    1. Inicie sesión en la consola de Certificate Management Service.

    2. En el panel de navegación izquierdo, elija Certificate Service > Certificate Application Repository.

    3. En la página Certificate Application Repository, haga clic en Create Repository. En el panel Create repository, establezca Data source en Uploaded CA certificates y haga clic en OK.

    4. En la página Certificate Application Repository, haga clic en el repositorio que creó.

    5. En la página Certificates, haga clic en Uploaded Certificate. En el panel CA information, cargue el archivo del certificado de CA raíz root.crt y haga clic en Confirm and Enable.

2. Exportar el certificado de cliente

Exportar desde la consola

Para utilizar un certificado de cliente adquirido en la consola con la autenticación mutua, expórtelo mediante los siguientes pasos:

  1. En la pestaña Private CAs, busque la CA subordinada de destino y luego haga clic en Certificates en la columna Actions.

  2. En la página Certificates, busque el certificado privado de destino y luego haga clic en Download en la columna Actions.

  3. En el cuadro de diálogo Download Certificate, seleccione el formato de certificado que desea descargar y luego haga clic en Confirm and Download. Si selecciona Include Trust Chain, el certificado descargado incluirá la cadena de certificados completa.

    En este ejemplo, seleccione PFX para Certificate format. Este formato es compatible con los navegadores.

    Los archivos descargados incluyen un archivo de certificado de cliente con la extensión .pfx y un archivo de texto con la extensión .txt que contiene la contraseña de cifrado de la clave privada del cliente.

Exportar un certificado autofirmado

Para utilizar un certificado de cliente generado a partir de un certificado de CA autofirmado con la autenticación mutua, siga estos pasos para generarlo:

Inicie sesión en ECS01 y realice los siguientes pasos para generar un certificado de cliente:

  1. Ejecute el siguiente comando para generar una clave privada para el certificado de cliente:

    openssl genrsa -out client.key 4096
  2. Ejecute el siguiente comando para generar una CSR para el certificado de cliente:

    openssl req -new -out client.csr -key client.key

    Introduzca la información obligatoria cuando el sistema la solicite. A continuación se muestra un ejemplo de código:

    Nota

    Asegúrese de que el Common Name del certificado de cliente sea único y distinto del Common Name del certificado de servidor, del certificado raíz o de cualquier otro certificado de cliente.

    Country Name (2 letter code) [XX]:cn
    State or Province Name (full name) []:bj
    Locality Name (eg, city) [Default City]:bj
    Organization Name (eg, company) [Default Company Ltd]:alibaba
    Organizational Unit Name (eg, section) []:test
    Common Name (eg, your name or your servers hostname) []:client-alb-user
    Email Address []:username@example.com
    A challenge password []:
    An optional company name []:
  3. Ejecute el siguiente comando para generar el certificado de cliente.

    openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650

    Se devuelve el siguiente resultado:

    Signature ok
    subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = client-alb-user, emailAddress = username@example.com
    Getting CA Private Key
  4. Ejecute el siguiente comando para convertir el certificado de cliente generado client.crt a un archivo PKCS12, que es compatible con los navegadores. Introduzca la contraseña de cifrado de la clave privada del cliente cuando el sistema la solicite.

    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
  5. Ejecute el comando ls para consultar el archivo de certificado de cliente client.p12 generado.

    Usted puede download el archivo de certificado de cliente a su computadora para utilizarlo después en el cliente.

Paso 2: Configurar un listener de autenticación mutua

  1. En la barra de navegación superior de la consola de ALB, seleccione la región donde está desplegada la instancia de ALB. En la página Instances, busque la instancia de ALB que desea gestionar y haga clic en su ID.

  2. En la página de detalles de la instancia, haga clic en la pestaña Listener y luego en Create Listener. Configure los parámetros y haga clic en Next.

    En este ejemplo, establezca Select Listener Protocol en HTTPS y Listener Port en 443. Puede conservar los valores predeterminados de other HTTPS listener parameters o modificarlos según sea necesario.

  3. En el paso SSL Certificate, seleccione el certificado de servidor que adquirió. Después, active Enable Mutual Authentication, seleccione un origen de certificado de CA y su certificado correspondiente. Por último, elija una directiva de seguridad TLS y haga clic en Next.

  4. En el paso Server Group, seleccione un Server Type y el Server Type del backend. Revise la información sobre los servidores backend ECS01 y ECS02, y luego haga clic en Next.

  5. En el paso Confirm, revise las configuraciones y haga clic en Submit.

Paso 3: Configurar la resolución DNS

Para entornos de producción, se recomienda crear un registro CNAME para asignar su nombre de dominio personalizado al nombre DNS de la instancia de ALB.

  1. En el panel de navegación izquierdo de la consola de ALB, elija ALB > Instances. En la página Instances, copie el nombre DNS de la instancia de ALB creada.

  2. Realice los siguientes pasos para agregar un registro CNAME.

    1. En la página DNS Resolution, busque el nombre de dominio personalizado de destino y haga clic en DNS Settings en la columna Operations.

      Nota

      Si su nombre de dominio no está registrado en Alibaba Cloud, primero debe add your domain name a la consola de Alibaba Cloud DNS antes de poder configurar los ajustes de DNS.

    2. En la página de ajustes de DNS, haga clic en Add DNS record, configure el registro CNAME y luego haga clic en OK.

      En este ejemplo, establezca Record type en CNAME y Record value en el nombre DNS de la instancia de ALB. Puede conservar los valores predeterminados de other DNS record parameters o modificarlos según sea necesario.

Paso 4: Probar la autenticación mutua

Este ejemplo utiliza un cliente Windows y el navegador Chrome.

  1. Instale el exported client certificate en el cliente.

    Haga doble clic en el archivo de certificado de cliente descargado y siga las indicaciones del asistente de importación para instalar el certificado de cliente.

  2. En el navegador, introduzca https://<your custom domain name>. En el cuadro de diálogo que aparece, seleccione el certificado que se usará para la autenticación del cliente.

  3. Actualice el navegador. Podrá observar que las solicitudes de los clientes se distribuyen entre los servidores ECS01 y ECS02.

    Si la página devuelve Hello World ! This is ECS01., la solicitud se reenvía a ECS01.

    Si actualiza la página y esta devuelve Hello World ! This is ECS02., la solicitud se reenvía a ECS02.

Referencias

Operaciones en la consola

Referencia de API

Puede llamar a las siguientes operaciones de API y establecer el parámetro CaEnabled en true para habilitar la autenticación mutua.