Extracción de origen autenticado
Authenticated Origin Pull es una función de seguridad que ayuda a garantizar una comunicación segura entre IBM Cloud® Internet Services y su servidor de origen. Utiliza TLS mutuo ( mTLS ) para autenticar tanto el CIS como el servidor de origen, lo que permite que sólo las peticiones procedentes del IBM Cloud® Internet Services de confianza accedan a su servidor. Esta configuración protege su servidor de origen de accesos no autorizados y mejora la seguridad general de sus aplicaciones web.
Los servidores web de origen validan que una solicitud web procede de IBM Cloud® Internet Services a través de pulls de origen autenticados. CIS utiliza la autenticación de certificados de cliente TLS, una función que admiten la mayoría de los servidores web para presentar un certificado CIS cuando establece una conexión entre CIS y el servidor web de origen. Al validar este certificado en el servidor web de origen, el acceso está limitado a conexiones de CIS.
Un pull de origen autenticado es importante cuando se aprovecha el Web Application Firewall (WAF). Después de que su servidor web de origen aplique pulls de origen autenticados, todas las peticiones HTTPS fuera de CIS son bloqueadas para que no lleguen a su origen.
Puede configurar la extracción de origen autenticada utilizando una de las siguientes opciones:
- Tirada de origen autenticada a nivel de zona mediante certificados CIS
- Tirada de origen autenticada a nivel de zona mediante certificados de cliente
- Extracción de origen autenticada por nombre de host mediante certificados de cliente
Los certificados de cliente no se suprimen de CIS después de que caduquen a menos que se envíe una solicitud de supresión o sustitución a la API de CIS. Sin embargo, las solicitudes se rechazan en el origen si éste sólo acepta un certificado de cliente válido.
La extracción de origen autenticado no funciona en SSL mode OFF (not secure) o Client-to-Edge.
Extracción de origen autenticado a nivel de zona con certificados CIS
Esta opción permite el acceso seguro al contenido desde el servidor de origen autenticando las peticiones con certificados proporcionados por CIS a nivel de zona.
CIS utiliza la siguiente CA siguiente para firmar certificados para el servicio de extracción de origen autenticado:
Descargue el certificado y guarde el archivo en su servidor web de origen, por ejemplo en /path/to/origin-pull-ca.pem
.
Para activar el origen autenticado, tire globalmente de una zona:
- Instale el certificado en el servidor web de origen para autenticar todas las conexiones.
- Configure CIS con End-to-End flexible.
- Configure el servidor web de origen para que acepte certificados de cliente.
- Active la extracción de origen autenticada mediante la CLI CIS.
Tirada de origen autenticada a nivel de zona con certificados de cliente
Esta opción permite el acceso seguro al contenido desde el servidor de origen utilizando certificados cargados por el cliente para la autenticación a nivel de zona.
-
Si utiliza una clave ECC generada por OpenSSL,, elimine primero
-----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS-----
del archivo del certificado. -
Asegúrese de que el certificado y la clave tienen el siguiente formato antes de cargarlos en CIS:
$ cat app_example_com.pem -----BEGIN CERTIFICATE----- MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E ... SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7 -----END CERTIFICATE-----
-
Sustituya los finales de línea por la serie
\n
:MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'| sed -e's/..$//')" echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/ 2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/ 3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
-
Cree la carga útil:
$ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))
-
Cargue el certificado de cliente y la clave privada desde la CLI de CIS.
-
Active la extracción de origen autenticada desde la CLI de CIS.
Extracción de origen autenticada por nombre de host mediante certificados de cliente
Esta opción permite el acceso seguro al contenido desde el servidor de origen autenticando las solicitudes con certificados de cliente por nombre de host.
Si activa la autenticación de origen por nombre de host, todo el tráfico proxy dirigido al nombre de host especificado se autentica en el servidor web de origen. Puede utilizar certificados de cliente de su propia infraestructura de claves públicas para autenticar conexiones procedentes de CIS.
Para cargar un certificado de cliente en CIS:
-
Si utiliza una clave ECC generada por OpenSSL,, elimine primero
-----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS-----
del archivo del certificado. -
Asegúrese de que el certificado tiene el siguiente formato antes de cargarlo en CIS.
$ cat app_example_com.pem -----BEGIN CERTIFICATE----- MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E ... SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7 -----END CERTIFICATE-----
-
Sustituya los finales de línea por la serie
\n
:MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'|sed -e's/..$//')" echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
-
Cree la carga útil:
$ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))
-
Cargue el certificado de cliente y la clave privada desde la CLI de CIS.
-
Active la extracción de origen autenticada en el nombre de host especificado a través de la CLI de CIS. Vincula el certificado del cliente al nombre de host específico.
Sustitución de un certificado de cliente sin inactividad
Para nombre de host:
- Cargue el nuevo certificado.
- Vincule el nuevo ID de certificado y el nombre de host y los valores habilitados.
Para global:
- Cargue el nuevo certificado.
- Compruebe que el nuevo certificado está en estado Activo.
- Una vez que el certificado esté activo, elimine el certificado antiguo.
Aplique otro certificado de cliente (a nivel de zona y nombre de host) simultáneamente
- Cargue un certificado siguiendo los pasos de la sección Extracción de origen autenticado a nivel de zona.
- Cargue varios certificados siguiendo los pasos de la sección Extracción de origen autenticada por nombre de host mediante certificados de cliente.
Instalación en Apache y NGINX
Utilice las instrucciones siguientes para configurar los grupos de origen autenticado de TLS para los servidores web de origen NGINX o Apache.
Configuración de Apache
Utilice End-to-End flexible y actualice la configuración SSL del servidor web de origen siguiendo estos pasos.
-
Descargue el certificado de origen autenticado (
origin-pull-ca.pem
). -
Almacene el certificado en un archivo de su servidor web de origen, por ejemplo en
/path/to/origin-pull-ca.pem
. -
Añada las líneas siguientes a la configuración de SSL para su servidor web de origen:
SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /path/to/origin-pull-ca.pem
Configuración de NGINX
Utilice End-to-End flexible y actualice la configuración SSL del servidor web de origen siguiendo estos pasos.
-
Descargue el certificado de origen autenticado (
origin-pull-ca.pem
). -
Almacene el certificado en un archivo de su servidor web de origen, por ejemplo en
/etc/nginx/certs/cloudflare.crt
. -
Añada las líneas siguientes a la configuración de SSL para su servidor web de origen:
ssl_client_certificate /etc/nginx/certs/cloudflare.crt; ssl_verify_client on;