Todos los productos
Search
Centro de documentos

Server Load Balancer:Use NLB to enable SSL offloading over TCP (mutual authentication)

Última actualización: Sep 21, 2026

Network Load Balancer (NLB) admite la descarga SSL a gran escala. Puede desplegar una instancia de NLB como punto de entrada del tráfico y configurar un certificado SSL junto con un certificado de autoridad certificadora (CA) para habilitar la autenticación mutua. Este mecanismo exige que tanto el cliente como el servidor proporcionen certificados digitales para demostrar su identidad, lo cual mejora la seguridad de sus cargas de trabajo.

Contexto

  • Autenticación unidireccional: el cliente debe comprobar la identidad del servidor, pero este no necesita verificar la del cliente. El cliente descarga un certificado de clave pública del servidor para autenticarse. La conexión se establece únicamente después de comprobar la identidad del servidor.

  • Autenticación mutua: el cliente descarga un certificado de servidor (certificado de clave pública) y carga un certificado de cliente (certificado de clave pública) en el servidor para autenticarse. La conexión se establece solo cuando se comprueban las identidades de ambas partes. Este método ofrece mayor seguridad.

Requisitos previos

  • Se creó una instancia de NLB. Para obtener más información, consulte Create and manage NLB instances.

  • Se crearon tres instancias de Elastic Compute Service (ECS). Para conocer el procedimiento de creación de una instancia, consulte Create an instance by using the wizard.

    • ECS01 y ECS02 se agregaron a la instancia de NLB como servidores de backend. En ECS01 y ECS02 se desplegaron aplicaciones NGINX distintas.

      Despliegue de aplicaciones en ECS01

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS01." > index.html
      

      Despliegue de aplicaciones en ECS02

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS02." > index.html
      
    • ECS03 se utiliza para generar certificados de servidor y de cliente autofirmados. Descargue OpenSSL desde el sitio de OpenSSL e instálelo en ECS03. La versión de OpenSSL debe ser 1.1.1 o posterior. Si utiliza un servidor Linux existente para generar los certificados autofirmados, no es necesario crear ECS03.

  • Se creó un grupo de servidores para la instancia de NLB, y ECS01 y ECS02 se agregaron a dicho grupo. En este ejemplo, los puertos de backend de ECS01 y ECS02 se establecieron en 80.

    Importante
    • El protocolo de backend del grupo de servidores debe ser TCP. Las solicitudes que NLB envía al servidor de backend ya están descifradas mediante SSL, por lo que los servidores de backend no necesitan descifrarlas.

    • No es posible asociar listeners que usen SSL sobre TCP con grupos de servidores donde esté habilitada esta función. Asegúrese de que la función Client IP Preservation esté deshabilitada en el grupo de servidores.

Paso 1: Preparar un certificado de CA

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

  2. En el panel de navegación izquierdo, seleccione Private Certificate Management.

  3. En la página Private Certificate Management, dentro de la pestaña Private CAs, busque el certificado de CA raíz.

  4. Haga clic en el ícono icon situado junto al certificado de CA raíz, busque la CA intermedia privada que desea gestionar y, a continuación, haga clic en Apply for Certificate en la columna Actions.

  5. En el panel Apply for Certificate, configure los parámetros y haga clic en Confirm.

    A continuación se describen los parámetros relevantes para este documento. Para obtener más información, consulte Manage private certificates.

    Parámetro

    Descripción

    Certificate Type

    Seleccione el tipo de certificado privado que desea comprar. En este ejemplo, se selecciona Client Certificate.

    Personal Name

    El identificador único del usuario cliente. Es obligatorio únicamente para un certificado de cliente.

    En este ejemplo, introduzca el nombre de dominio de la instancia de NLB.

    Validity Period

    Especifique un periodo de validez para el certificado privado. Este periodo no puede superar la duración de la suscripción del servicio Private Certificate Authority (PCA) adquirido.

    En este ejemplo se utiliza el periodo de validez predeterminado, que es de 30 días.

    El certificado privado se emite inmediatamente después de enviar la solicitud. Para consultar los detalles del certificado privado, busque la CA privada, haga clic en Certificates en la columna Actions y revise la información en la página Certificates.

Paso 2: Preparar un certificado de servidor

Un navegador comprueba la identidad de un servidor verificando si el certificado que este envía fue emitido por una CA de confianza. A continuación se describen dos métodos para obtener un certificado de servidor. Puede comprar uno en Certificate Management Service o cargar un certificado autofirmado en dicho servicio.

Método 1: Comprar un certificado de servidor

Puede comprar certificados de servidor en Certificate Management Service o a través de otros proveedores de servicios. Para obtener más información, consulte Purchase an SSL certificate.

Método 2: Cargar un certificado de servidor autofirmado

  1. Inicie sesión de forma remota en ECS03 y ejecute el siguiente comando para generar un certificado de servidor autofirmado. Asegúrese de que el certificado de CA esté almacenado en ECS03. Los archivos de certificado de CA utilizados en este ejemplo son root.crt y root.key.

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

      sudo openssl genrsa -out server.key 4096
    2. Ejecute el siguiente comando para generar una solicitud de firma de certificado (CSR):

      sudo openssl req -new -out server.csr -key server.key

      Configure el resto de los parámetros. Ejemplos:

      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) []:www.example.com
      Email Address []:a.alibaba.com
      A challenge password []:
      An optional company name []:
      Importante

      Establezca Common Name con el nombre de dominio asociado al certificado de servidor. Compruebe que el nombre de dominio sea válido. Mantenga los valores de los demás parámetros iguales a los del certificado raíz y del certificado de cliente.

      En este ejemplo, la instancia de NLB utiliza el nombre de dominio personalizado www.example.com para ofrecer servicios externos. Por lo tanto, Common Name se establece en www.example.com.

    3. Ejecute el siguiente comando para generar una clave pública para el certificado de servidor:

      sudo openssl x509 -req -in server.csr -out server.crt -signkey server.key -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=www.xxx.com.cn/emailAddress=a.alibaba.com
      Getting Private key
      Getting CA Private Key
    4. Ejecute el siguiente comando para crear una carpeta donde almacenar los archivos del certificado de servidor:

      sudo mkdir -p /root/ssl
    5. Ejecute el siguiente comando para copiar el certificado de servidor en la carpeta:

      sudo cp server.crt /root/ssl
      sudo cp server.key /root/ssl
    6. Ejecute el siguiente comando para consultar el certificado de servidor server.crt y la clave privada server.key del certificado de servidor:

      cd /root/ssl
      ls

      Se devuelve el siguiente resultado:

      root.crt  root.csr  root.key  root.srl  server.crt  server.csr  server.key
  2. En este ejemplo se utiliza un cliente Windows. Abra la interfaz de línea de comandos (CLI) en el cliente Windows y ejecute los siguientes comandos para exportar los archivos del certificado de servidor generados en Step 1 al escritorio local:

    scp root@IPaddress:/root/ssl/server.crt C:\Users\Public\Desktop    #Replace 'IPaddress' with the IP address of the server that generates the server certificate
    scp root@IPaddress:/root/ssl/server.key C:\Users\Public\Desktop    #Replace 'IPaddress' with the IP address of the server that generates the server certificate
  3. Inicie sesión en la consola de Certificate Management Service.

  4. En el panel de navegación izquierdo, seleccione Certificate Management > SSL Certificate Management.

  5. Haga clic en la pestaña Uploaded Certificates y luego en Upload Certificate.

  6. En el panel Upload Certificate, configure los siguientes parámetros y haga clic en OK.

    Para obtener más información, consulte Upload, sync, and share SSL certificates.

    Parámetro

    Descripción

    Certificate Algorithm

    En este ejemplo, se selecciona Internationally Accepted Algorithm.

    Certificate Name

    Introduzca un nombre para el certificado que va a cargar.

    Certificate File

    Introduzca el contenido del archivo de certificado de CA codificado en PEM.

    Utilice uno de los siguientes métodos para introducir el contenido. Método 1: abra el archivo de certificado de CA en formato PEM o CRT con un editor de texto y copie el contenido en el campo Certificate File. Método 2: haga clic en Upload and Parse File, debajo del campo Certificate File, y seleccione el archivo de certificado de CA desde su computadora para cargar su contenido.

    En este ejemplo se carga el archivo de certificado de servidor server.crt.

    Certificate Key

    Introduzca el contenido del archivo de clave privada codificado en PEM.

    Utilice uno de los siguientes métodos para introducir el contenido. Método 1: abra el archivo de clave privada en formato KEY con un editor de texto y copie el contenido en el campo Add Private Key. Método 2: haga clic en Upload and Parse File, debajo del campo Add Private Key, y seleccione el archivo de clave privada desde su computadora para cargar su contenido.

    En este ejemplo se carga el archivo de clave privada server.key.

    Certificate Chain

    Introduzca el contenido del archivo de cadena de certificados. Este parámetro se omite en este ejemplo.

Paso 3: Preparar un certificado de cliente

Según sus necesidades de negocio, utilice uno de los siguientes métodos para preparar un certificado de cliente:

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

  2. En el panel de navegación izquierdo, seleccione Private Certificate Management.

  3. En la página Private Certificate Management, dentro de la pestaña Private CAs, busque el certificado de CA raíz.

    Para obtener más información sobre cómo adquirir un certificado de CA raíz, consulte Purchase and enable a private CA.

  4. Busque el certificado de CA raíz y haga clic en el ícono icon. A continuación, busque el certificado de CA subordinada y haga clic en Certificates dentro de Actions.

  5. En la página Certificates, localice el certificado privado deseado. En la columna Actions, haga clic en Download.

  6. En el cuadro de diálogo Download Certificate, seleccione un formato de certificado y haga clic en Confirm and Download. En este ejemplo se selecciona el formato CRT; el certificado de cliente es client.crt y la clave privada del certificado es client.key.

  7. Convierta el certificado de cliente a un archivo PKCS12 que el navegador pueda reconocer.

    1. Inicie sesión de forma remota en ECS03. Para obtener más información, consulte Guidelines on instance connection.

    2. Ejecute el siguiente comando para crear una carpeta donde almacenar el certificado de cliente:

      sudo mkdir -p /root/ca/users
    3. Cargue el certificado de cliente client.crt y la clave privada del certificado client.key en el directorio users.

    4. Ejecute el siguiente comando para convertir el certificado de cliente a un archivo PKCS12:

      sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12
    5. Siga las instrucciones para establecer una clave de cifrado para la clave privada del certificado.

    6. Introduzca la contraseña utilizada para exportar el certificado de cliente. Esta contraseña cifra el certificado de cliente y es obligatoria durante su instalación.

      Se muestra el siguiente resultado:

      Enter pass phrase for /root/ca/users/client.key:
      Enter Export Password:
      Verifying - Enter Export Password:
  8. Ejecute los siguientes comandos para consultar el certificado de cliente generado:

    cd /root/ca/users
    ls

    Se muestra el siguiente resultado:

    client.crt  client.key  client.p12
  9. Este ejemplo utiliza un cliente Windows. Abra la CLI y ejecute el siguiente comando para exportar el certificado de cliente:

    scp root@IPaddress:/root/ca/users/client.p12 C:\Users\Public\Desktop   #Replace 'IPaddress' with the IP address of the server that generates the client certificate

Paso 4: Instalar el certificado de cliente

Instale el certificado de cliente en su equipo. En este ejemplo se utilizan un cliente Windows y un cliente Linux para mostrar cómo instalar el certificado de cliente.

Cliente Windows

Importe el certificado de cliente en Microsoft Edge.

  1. Abra Microsoft Edge. En la esquina superior derecha, seleccione Settings > Settings.

  2. En el panel de navegación izquierdo, haga clic en la pestaña Privacy, search, and services. Luego, haga clic en Manage certificates dentro de la sección Security e importe el archivo PKCS12. En este paso debe introducir la contraseña que utilizó para exportar el certificado de cliente en Step 3.

Cliente Linux

Si utilizó ECS03 para generar el certificado de cliente, este se almacena en el directorio de dicha instancia. Si usó otro cliente Linux para generarlo, siga estos pasos para copiar primero los certificados al directorio del cliente Linux:

  1. Inicie sesión en el cliente Linux. Ejecute los siguientes comandos para copiar el certificado de cliente, el certificado del servidor y el certificado raíz a un directorio:

    1. Ejecute el siguiente comando para crear una carpeta:

      sudo mkdir /root/ca
    2. Ejecute el siguiente comando para modificar los permisos del directorio:

      sudo chmod 700 /root/ca
    3. Ejecute el siguiente comando para copiar los certificados al directorio del cliente Linux:

      La siguiente ruta es solo de referencia. Especifique la ruta real que esté utilizando.

      sudo scp home@IPaddress:/root/ca/users/client.crt /root/ca     //Replace 'IPaddress' with the IP address of the server that generates the client certificate
      sudo scp home@IPaddress:/root/ca/root.crt /root/ca       //Replace 'IPaddress' with the IP address of the server that generates the root certificate
      sudo scp home@IPaddress:/root/ca/root.key /root/ca       //Replace 'IPaddress' with the IP address of the server that generates the root certificate
      sudo scp home@IPaddress:/root/ssl/server.crt /root/ca     //Replace 'IPaddress' with the IP address of the server that generates the server certificate
      sudo scp home@IPaddress:/root/SSL/server.key /root/ca     //Replace 'IPaddress' with the IP address of the server that generates the server certificate

Paso 5: Configurar la autenticación mutua para un listener que usa SSL sobre TCP

  1. Inicie sesión en la consola de NLB.

  2. En la barra de navegación superior, seleccione la región de la instancia NLB.

  3. En la página Instances, busque la instancia NLB y haga clic en Actions dentro de la columna Create Listener.

  4. En el paso Configure Listener, configure los siguientes parámetros y haga clic en Next.

    La siguiente tabla describe únicamente algunos de los parámetros. Mantenga los valores predeterminados para el resto. Para obtener más información, consulte Create a listener that uses SSL over TCP.

    Parámetro

    Procedimiento

    Listener Protocol

    Seleccione un protocolo de listener. En este ejemplo se elige TCPSSL.

    Listener Port

    Especifique el puerto en el que escucha la instancia NLB. La instancia utiliza este puerto para recibir solicitudes y reenviarlas a los servidores backend. En este ejemplo se usa el puerto 443.

  5. En el paso Configure SSL Certificate, seleccione en la lista desplegable Server Certificate el certificado del servidor especificado en Step 2.

  6. Active Enable Mutual Authentication. Seleccione en la lista desplegable Default CA Certificate el certificado de CA adquirido en el paso 1.

  7. Seleccione una TLS Security Policy y haga clic en Next.

  8. En el paso Select Server Group, seleccione el grupo de servidores que creó y consulte la información de los servidores backend ECS01 y ECS02. En este ejemplo, los puertos de los servidores backend están configurados en 80. Luego, haga clic en Next.

  9. En el paso Configuration Review, confirme las configuraciones y haga clic en Submit.

Paso 6: Comprobar la autenticación mutua

Cliente Windows

  1. Vaya a la página Instances de NLB, haga clic en el ID de la instancia NLB que desea gestionar y luego haga clic en la pestaña Listener para consultar el estado de la comprobación de estado de los listeners que usan SSL sobre TCP.

    Si la columna Health Check Status muestra Healthy, los servidores backend pueden procesar las solicitudes que reenvía el listener NLB.

  2. Introduzca https://The domain name associated with the server certificate en la barra de direcciones de su navegador, por ejemplo, https://www.example.com. En el cuadro de diálogo que aparece, seleccione el certificado utilizado para verificar la identidad del cliente y haga clic en OK.

  1. Para evitar problemas derivados de la caché del navegador, se recomienda usar una ventana de navegación privada cada vez que pruebe el balanceo de carga de capa 4 mediante el nombre de dominio DNS. Podrá observar que las solicitudes se distribuyen entre las dos instancias ECS. Un acceso devuelve Hello World ! This is ECS01. y otro devuelve Hello World ! This is ECS02.

Cliente Linux

Inicie sesión en el cliente Linux donde se almacenan el certificado raíz, el certificado del servidor y el certificado de cliente. Luego, ejecute los siguientes comandos para probar la autenticación mutua:

sudo curl --cert /root/ca/client.crt --key /root/ca/client.key --cacert /root/ca/root.crt www.example.com

www.example.com es el nombre de dominio asociado al certificado del servidor.

Si se devuelve el siguiente paquete de respuesta, tanto el cliente como el servidor superaron la autenticación mutua y las solicitudes se distribuyeron entre ECS01 y ECS02.

$ sudo curl --cert /root/ca/client.crt --key /root/ca/client.key --cacert /root/ca/root.crt https://xxx.com.cn
Hello World ! This is ECS01.
$ sudo curl --cert /root/ca/client.crt --key /root/ca/client.key --cacert /root/ca/root.crt https://xxx.com.cn
Hello World ! This is ECS02.