Configure varios certificados en una sola instancia de Global Accelerator para acelerar el acceso a varios dominios HTTPS.
Escenario de uso
Una empresa con sede en Estados Unidos (Silicon Valley) desplegó dos servicios web en servidores de Alibaba Cloud. Cada servicio utiliza un nombre de dominio distinto. Sus clientes se encuentran principalmente en China (Hong Kong), y los servicios web enfrentan los siguientes desafíos:
Las conexiones inestables de la red pública provocan alta latencia, fluctuaciones y pérdida de paquetes.
Acelerar cada dominio por separado genera costos elevados.
Para resolver estos problemas, la empresa planea desplegar Global Accelerator con un listener HTTPS. Un listener HTTPS acelera el acceso a varios dominios HTTPS mediante las siguientes funciones:
Permite vincular varios certificados para asociar múltiples dominios a un solo listener HTTPS.
Admite reglas de reenvío basadas en dominios que dirigen las solicitudes de cada dominio a sus servidores de backend correspondientes.
Cifra las solicitudes de los clientes para garantizar la seguridad de los datos durante la transmisión.
A continuación se describen los detalles del servidor web y el plan de reenvío de solicitudes tras desplegar Global Accelerator.
Elemento | Dominio 1 | Dominio 2 |
Protocolo del listener | HTTPS | |
Puerto del listener | 443 | |
Certificado correspondiente | certificado predeterminado A | certificado adicional B |
Regla de reenvío correspondiente | regla de reenvío predeterminada | regla de reenvío personalizada |
Grupo de endpoints correspondiente | grupo de endpoints predeterminado | grupo de endpoints virtual |
Servidor correspondiente | Servidor 1 | Servidor 2 |
Protocolo del servicio de backend | HTTP | HTTPS |
Puerto del servicio de backend | 80 | 443 |
Dirección IP pública del servidor | 47.XX.XX.62 | 47.XX.XX.34 |
Los certificados configurados en Global Accelerator cifran los datos desde los clientes hasta la instancia. Los certificados instalados en los servidores de backend cifran los datos desde Global Accelerator hasta dichos servidores.
Requisitos previos
Compró un certificado SSL y envió una solicitud de certificado. Para obtener más información, consulte Select and purchase a certificate y Submit a certificate application.
Cargó el archivo del certificado en los servidores de backend. Para obtener más información, consulte Upload a file to an ECS instance by using Cloud Assistant.
El Servidor 1 y el Servidor 2 de backend proporcionan servicios a través del puerto HTTP 80 y del puerto HTTPS 443, respectivamente.
Configuró la resolución DNS para el Dominio 1 (
xxxtest.cloud) y el Dominio 2 (xxxtest.fun). En concreto, configuró registros A que apuntan los dominios a las direcciones IP públicas de los servidores de backend.
Este tema describe cómo usar Nginx para configurar servicios de backend que se ejecutan en el puerto HTTP 80 y en el puerto HTTPS 443, además de utilizar Alibaba Cloud DNS para configure DNS records . Si utiliza otro proveedor de servicios DNS, siga sus instrucciones.
Este tema toma como ejemplo una instancia estándar pay-as-you-go de Global Accelerator para mostrarle cómo configurar Global Accelerator y acelerar el acceso a varios dominios HTTPS.
Las instancias de GA pay-as-you-go usan Pay-By-Data-Transfer para la facturación del ancho de banda. No es necesario asociar un paquete de ancho de banda. Cloud Data Transfer (CDT) gestiona traffic billing.
La primera vez que utilice una instancia de GA pay-as-you-go, debe Activate the Service.
Paso 1: Configurar la información básica
Inicie sesión en la consola de Global Accelerator.
En la página Instances, haga clic en Create Standard Pay-as-you-go Instance.
-
En el paso Basic Instance Configuration, configure los parámetros según la siguiente tabla y haga clic en Next.
Parámetro
Descripción
GA Instance Name
Introduzca un nombre para la instancia de GA.
Instance Billing Method
De forma predeterminada, se selecciona Pay-As-You-Go.
Se le cobra instance fees, CU fees y data transfer fees por las instancias pay-as-you-go de Global Accelerator.
Resource Group
Seleccione el resource group al que pertenece la instancia estándar.
La cuenta actual de Alibaba Cloud debe haber creado el resource group en Resource Management. Para obtener más información, consulte Create a resource group.
Paso 2: Configurar un área de aceleración
Configure áreas de aceleración para una instancia de Global Accelerator con el fin de especificar las regiones donde se ubican sus usuarios y asignar ancho de banda para acelerar el acceso a sus servicios de backend.
En el paso Configure Acceleration Area, configure los parámetros según la siguiente tabla y haga clic en Next.
Parámetro | Descripción |
Acceleration Area | Seleccione una o más regiones en la lista desplegable y haga clic en Add. En este ejemplo, se selecciona la región China (Hong Kong) dentro de la sección Asia Pacific. |
Assign Bandwidth | |
Maximum Bandwidth | Especifique el ancho de banda máximo para la región de aceleración. Cada región de aceleración admite un rango de ancho de banda de 2 a 10 000 Mbit/s. El ancho de banda máximo se utiliza para limitar el throughput. CDT gestiona los cargos por transferencia de datos. En este ejemplo, se usa el valor predeterminado de 200 Mbit/s. Importante Si especifica un valor bajo para el ancho de banda máximo, podría producirse una limitación y descartarse paquetes. Especifique el ancho de banda máximo según sus necesidades. |
IP Protocol | Seleccione la versión de IP que se usará para conectarse a Global Accelerator. En este ejemplo, se selecciona el valor predeterminado IPv4. |
ISP Line Type | Seleccione un tipo de línea ISP para la instancia de Global Accelerator. En este ejemplo, se selecciona BGP (Multi-ISP). |
Paso 3: Configurar un listener
Un listener comprueba y procesa las solicitudes de conexión entrantes según el puerto y el protocolo que usted especifique. Cada listener se asocia con uno o más grupos de endpoints. Una vez que asocia un grupo de endpoints con un listener, GA enruta el tráfico hacia el endpoint óptimo dentro de ese grupo.
En la página Configure Listeners, configure un listener y haga clic en Next.
Parámetro | Descripción |
Listener Name | Introduzca un nombre para el listener. |
Routing Type | Seleccione un tipo de enrutamiento. En este ejemplo, seleccione Intelligent Routing. |
Protocol | Seleccione un protocolo para el listener. En este ejemplo, seleccione HTTPS. |
Port | Especifique el puerto del listener que se usará para recibir y reenviar solicitudes a los endpoints. El número de puerto debe estar en el rango de 1 to 65499. En este ejemplo, introduzca 443. |
Server certificate | Seleccione el certificado de servidor que obtuvo. En este ejemplo, seleccione el Certificado A. |
TLS security policy | Seleccione la directiva de seguridad TLS que desea usar. Una directiva de seguridad TLS incluye las versiones del protocolo TLS compatibles y los conjuntos de cifrado para HTTPS. Para obtener más información, consulte TLS security policies. Si no configura este parámetro, se usa la directiva predeterminada tls_cipher_policy_1_0. |
Client Affinity | Especifique si desea habilitar la afinidad de cliente. Cuando está habilitada, todas las solicitudes de un mismo cliente se enrutan al mismo endpoint. Esta función resulta adecuada para aplicaciones con estado. En este ejemplo, seleccione Source IP Address. |
Add HTTP Header | Seleccione los campos de encabezado HTTP adicionales que necesite. En este ejemplo, se usa la configuración predeterminada. |
Paso 4: Configurar un grupo de endpoints y los endpoints
-
En la página Configure an Endpoint Group, configure un grupo de endpoints y los endpoints, y luego haga clic en Next.
Esta sección describe únicamente los parámetros más relevantes para este escenario. Para obtener más información, consulte Add and manage endpoint groups for intelligent routing listeners.
Parámetro
Descripción
Region
Seleccione la región donde se despliega el grupo de endpoints.
En este ejemplo, seleccione US (Silicon Valley).
Endpoint Configuration
Los endpoints son los hosts de destino para las solicitudes de los clientes. Configure los endpoints con la siguiente información:
Backend Service Type: Seleccione Alibaba Cloud Public IP.
Backend Service: Introduzca la dirección IP del servicio de backend que desea acelerar. En este ejemplo, introduzca la dirección IP pública del Servidor 1: 47.XX.XX.62.
Weight: Introduzca un peso para el endpoint. El valor debe estar en el rango de 0 a 255. Global Accelerator enruta el tráfico a los endpoints según sus pesos. En este ejemplo, se usa el valor predeterminado 255.
AvisoSi establece el peso de un endpoint en 0, Global Accelerator deja de distribuir tráfico hacia ese endpoint. Proceda con precaución.
Preserve Client IP
La función de conservación de la IP del cliente, habilitada de forma predeterminada, permite que los servicios de backend recuperen las direcciones IP de los clientes. Un listener HTTP lee la dirección IP de origen del cliente desde el campo x-forwarded-for del encabezado HTTP. Para obtener más información, consulte Preserve client IP addresses.
Backend Service Protocol
Seleccione el protocolo de servicio que utiliza el servidor de backend.
El protocolo predeterminado es HTTP.
Port Mapping
Si el puerto del listener difiere del puerto de servicio de su endpoint, debe configurar la asignación de puertos.
Listener Port: Este parámetro debe coincidir con el puerto del listener actual. En este ejemplo, introduzca 443.
Endpoint Port: El puerto de servicio de su endpoint. En este ejemplo, introduzca 80.
Traffic Distribution Ratio
Especifique el porcentaje de tráfico que se reenviará al grupo de endpoints.
Valores válidos: de 0 a 100.
En este ejemplo, se usa el valor predeterminado de 100%.
Health Check
Habilite o deshabilite las comprobaciones de estado.
Si habilita esta función, el sistema comprueba el estado de los endpoints. Para obtener más información, consulte Enable and manage health checks.
En este ejemplo, las comprobaciones de estado están deshabilitadas de forma predeterminada.
En la página Configuration Review, revise la configuración y haga clic en Submit. La creación de una instancia de GA tarda entre 3 y 5 minutos aproximadamente.
Opcional: Una vez creada la instancia, haga clic en Go to Instance Details debajo de la lista de detalles de la tarea. En la página de detalles de la instancia, seleccione pestañas como Instance Information, Listeners y Acceleration Areas para consultar la configuración de la instancia.
-
Configure un grupo de endpoints virtual.
En la página de detalles de la instancia, haga clic en la pestaña Listeners.
En la pestaña Listener, busque el listener que desea gestionar y haga clic en el ID del grupo de endpoints en la columna Default Endpoint Group.
En la pestaña Endpoint Group, dentro de la sección Virtual Endpoint Group, haga clic en Add Virtual Endpoint Group.
-
En la página Add Endpoint Group, configure los ajustes con la siguiente información y luego haga clic en Create.
Salvo por los parámetros que se indican a continuación, configure todos los demás de la misma manera que en el grupo de endpoints predeterminado.
Backend Service Type: Seleccione Alibaba Cloud Public IP.
Backend Service: Introduzca la dirección IP pública del Servidor 2: 47.XX.XX.34.
Backend Service Protocol: Seleccione HTTPS.
-
Port Mapping: No se requiere asignación de puertos.
Si el puerto del listener coincide con el puerto de servicio de su endpoint, no es necesaria la asignación de puertos. Global Accelerator reenvía automáticamente las solicitudes de acceso al puerto de servicio del endpoint.
Paso 5: Vincular un certificado adicional
Vincule un certificado adicional a un listener HTTPS para asociar otro dominio. Al combinarlo con reglas de reenvío basadas en dominios, esto enruta las solicitudes de distintos dominios hacia diferentes grupos de endpoints virtuales.
A continuación se describe cómo asociar el Dominio 2 (xxxtest.fun) al listener HTTPS mediante la vinculación del Certificado B.
En la pestaña Listener, busque el listener HTTPS de destino y haga clic en su ID.
En la página de detalles del listener, haga clic en la pestaña Certificates.
En la pestaña Certificates, dentro de la sección Additional Certificate, haga clic en Associate Certificate.
-
En el cuadro de diálogo Associate Certificate, configure el certificado adicional con la siguiente información y luego haga clic en OK.
Certificate: Seleccione el certificado que desea vincular. En este ejemplo, seleccione el Certificado B.
Associated Domain Name: Seleccione el dominio asociado a este certificado que desea acelerar mediante Global Accelerator. En este ejemplo, seleccione el Dominio 2 (
xxxtest.fun).
Paso 6: Agregar una regla de reenvío
Cuando un listener HTTPS recibe una solicitud, la compara con las reglas de reenvío personalizadas. Si alguna regla coincide, el listener reenvía la solicitud al grupo de endpoints correspondiente. Si ninguna regla personalizada coincide, la solicitud se reenvía al grupo de endpoints predeterminado.
A continuación se describe cómo crear una regla de reenvío personalizada para el grupo de endpoints virtuales del Servidor 2. Esta regla enruta todas las solicitudes del Dominio 2 (xxxtest.fun) hacia el Servidor 2.
En la pestaña Listener, busque el listener HTTPS de destino y haga clic en su ID.
En la página de detalles del listener, haga clic en la pestaña Forwarding Rule.
En la pestaña Forwarding Rule, haga clic en Add Forwarding Rule.
-
En la sección Add Forwarding Rule, configure la regla de reenvío con la siguiente información y haga clic en OK.
Parámetro
Descripción
Name
Introduzca un nombre para la regla de reenvío.
If (Matching All Conditions)
Configure una condición de reenvío.
En este ejemplo, seleccione Domain Name e introduzca el dominio que desea coincidir: xxxtest.fun.
Forwarding action
Seleccione el tipo de acción y el destino de reenvío.
En este ejemplo, seleccione Forward to y elija el grupo de endpoints virtual que creó.
Paso 7: Configurar un registro CNAME
Debe apuntar el Dominio 1 (xxxtest.cloud) y el Dominio 2 (xxxtest.fun) a la dirección CNAME de la instancia de Global Accelerator en el DNS. Esto garantiza que las solicitudes de acceso se enruten a través de Global Accelerator.
-
En la página Domains, busque su dominio (
xxxtest.cloud) y haga clic en DNS settings en la columna Actions.Si su dominio no está registrado en Alibaba Cloud, debe add the domain a la consola de Alibaba Cloud DNS antes de poder configurar los registros DNS.
En la página de configuración de DNS, busque el registro A existente y haga clic en Edit en la columna Actions.
-
En el panel Modify record, establezca Record Type en CNAME, cambie Record Value a la dirección CNAME asignada a la instancia de Global Accelerator y luego haga clic en Confirm.
Puede encontrar la dirección CNAME asignada a la instancia de Global Accelerator en la página Instances.
Repita los pasos anteriores para cambiar el registro A existente del Dominio 2 (
xxxtest.fun) por un registro CNAME.
Si necesita devolver resultados de resolución según la región del cliente, asegúrese de haber actualizado Alibaba Cloud DNS a la edición Enterprise Standard o Enterprise Ultimate. Para obtener más información sobre cómo actualizar, consulte Renew an instance .
Después de la actualización, puede cambiar la línea DNS predeterminada del registro A existente por una línea regional específica y agregar un registro CNAME que apunte a la dirección CNAME asignada a la instancia de Global Accelerator .
Paso 8: Comprobar la configuración
Compruebe si los clientes pueden acceder a los servicios web desplegados en US (Silicon Valley) mediante los distintos dominios con acceso acelerado.
En este tema se usa Alibaba Cloud Linux 3 como ejemplo. Los comandos de prueba varían según el sistema operativo. Consulte la documentación de su sistema operativo para conocer los comandos específicos.
El efecto de aceleración del servicio Global Accelerator depende de las pruebas reales de su negocio.
Comprobar la conectividad del sitio web
Abra una ventana de línea de comandos en una computadora ubicada en la región de aceleración. En este ejemplo, la región de aceleración es China (Hong Kong).
-
Ejecute el siguiente comando tanto para el Dominio 1 (
xxxtest.cloud) como para el Dominio 2 (xxxtest.fun) para comprobar que la configuración de CNAME surtió efecto.ping <website_domain>Si el resultado de resolución devuelto coincide con el CNAME de la instancia de Global Accelerator, la configuración de CNAME está activa.
[root@iZjxxx ~]# ping xxx_test.cloud PING ga-bp1xxx9.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=101 time=1.60 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.593/1.595/1.598/0.002 ms [root@iZjxxx ~]# ping xxx_test.fun PING ga-bp1xxx.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=96 time=1.58 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=96 time=1.53 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=96 time=1.51 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.508/1.539/1.576/0.042 ms -
Ejecute el siguiente comando para el Dominio 1 (
xxxtest.cloud) y el Dominio 2 (xxxtest.fun) para comprobar la conectividad del sitio web y verificar que el certificado se obtenga correctamente.curl -v https://<website_domain> --resolve <website_domain>:<listener_port>:<accelerated_IP>A continuación se muestra un ejemplo del resultado de la prueba para el Dominio 1 (
xxxtest.cloud). Si la salida incluye la información del certificado y una respuesta válida, el servicio del sitio web funciona correctamente.[root@iZxxx]# curl -v https://xxx_test.cloud --resolve xxx_test.cloud:443:8.217.xxx * Added xxx_test.cloud:443:8.217.xxx to DNS cache * Rebuilt URL to: https://xxx_test.cloud/ * Hostname xxx_test.cloud was found in DNS cache * Trying 8.217.xxx... * TCP_NODELAY set * Connected to xxx_test.cloud (8.217.xxx) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=xxx_test.cloud * start date: Mar 1 00:00:00 2024 GMT * expire date: Mar 31 23:59:59 2025 GMT * subjectAltName: host "xxx_test.cloud" matched cert's "xxx_test.cloud" * issuer: C = US; O = DigiCert Inc; CN = DigiCert Global G2 TLS RSA SHA256 2020 CA1 * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x55d6e15b76b0) > GET / HTTP/2 > Host: xxx_test.cloud > User-Agent: curl/7.61.1 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! < HTTP/2 200 < date: Thu, 14 Sep 2023 09:00:09 GMT < content-type: text/html < content-length: 299 < last-modified: Mon, 11 Sep 2023 10:27:09 GMT < etag: "64feeb7d-12b" < accept-ranges: bytes < <!DOCTYPE html> <html> <head> <title>HTTP Server Test Page</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to HTTP Server Test Page!</h1> <p>This is ECS01.</p> </body> </html> * Connection #0 to host xxx_test.cloud left intact
Comprobar el rendimiento de aceleración
Para comprobar el rendimiento de aceleración, consulte Test the acceleration performance of Global Accelerator.