Fonction Authenticated Origin Pull
Authenticated Origin Pull est une fonction de sécurité qui permet d'assurer une communication sécurisée entre le site IBM Cloud® Internet Services et votre serveur d'origine. Il utilise TLS mutuel ( mTLS ) pour authentifier à la fois le serveur CIS et le serveur d'origine, ce qui permet uniquement aux requêtes provenant du serveur IBM Cloud® Internet Services d'accéder à votre serveur. Cette configuration protège votre serveur d'origine contre les accès non autorisés et renforce la sécurité globale de vos applications web.
Les serveurs web d'origine valident qu'une requête web provient de IBM Cloud® Internet Services par le biais de pulls d'origine authentifiés. CIS utilise l'authentification par certificat client TLS, une fonctionnalité prise en charge par la plupart des serveurs web, pour présenter un certificat CIS lorsqu'il établit une connexion entre CIS et le serveur web d'origine. Avec la validation de ce certificat sur votre serveur Web d'origine, l'accès est limité aux connexions CIS.
L'extraction de l'origine authentifiée est importante lorsque vous utilisez le Web Application Firewall (WAF). Une fois que votre serveur web d'origine a mis en place des pulls d'origine authentifiés, toutes les requêtes HTTPS en dehors de CIS sont bloquées et ne peuvent pas atteindre votre origine.
Vous pouvez configurer l'extraction d'origine authentifiée en utilisant l'une des options suivantes :
- L'extraction de l'origine authentifiée au niveau de la zone à l'aide de certificats CIS
- Extraction de l'origine authentifiée au niveau de la zone à l'aide de certificats de clients
- Extraction de l'origine authentifiée par nom d'hôte à l'aide de certificats de clients
Les certificats client ne sont pas supprimés de CIS lorsqu'ils expirent sauf si une demande de suppression ou de remplacement est envoyée à l'API CIS. Toutefois, les demandes sont rejetées à votre point d'origine si celui-ci n'accepte qu'un certificat de client valide.
La fonction Authenticated Origin Pull ne fonctionne pas avec le mode SSL désactivé (non sécurisé) ou le mode Client à périphérie.
Extraction d'origine authentifiée au niveau de la zone avec des certificats CIS
Cette option permet de sécuriser l'accès au contenu à partir du serveur d'origine en authentifiant les demandes à l'aide de certificats fournis par CIS au niveau de la zone.
CIS utilise l'autorité de certification suivante pour signer des certificats pour le service Authenticated Origin Pull :
Téléchargez le certificat et stockez le fichier sur votre serveur Web d'origine, par exemple, dans /path/to/origin-pull-ca.pem.
Pour activer l'origine authentifiée, tirez globalement sur une zone :
- Installez le certificat sur le serveur web d'origine pour authentifier toutes les connexions.
- Configurez CIS avec une flexibilité de bout en bout.
- Configurer le serveur web d'origine pour qu'il accepte les certificats des clients.
- Activez l'extraction d'origine authentifiée en utilisant le CLI de CIS.
Extraction d'origine authentifiée au niveau de la zone à l'aide de certificats personnalisés
Cette option permet de sécuriser l'accès au contenu à partir du serveur d'origine en utilisant des certificats chargés par le client pour l'authentification au niveau de la zone.
-
Si vous utilisez une clé ECC générée par OpenSSL,, supprimez d'abord
-----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS-----du fichier de certificat. -
Assurez-vous que le certificat et la clé sont au format suivant avant de les télécharger sur CIS:
$ cat app_example_com.pem -----BEGIN CERTIFICATE----- MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E ... SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7 -----END CERTIFICATE----- -
Remplacez les fins de ligne par la chaîne
\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 -
Générez le contenu :
$ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF )) -
Téléchargez le certificat client et la clé privée à partir de la CLI de CIS.
-
Activer l'extraction d'origine authentifiée à partir de la CLI de CIS.
Extraction de l'origine authentifiée par nom d'hôte à l'aide de certificats de clients
Cette option permet de sécuriser l'accès au contenu à partir du serveur d'origine en authentifiant les requêtes à l'aide de certificats clients pour chaque nom d'hôte.
Lorsque vous activez l'authentification de l'extraction d'origine par nom d'hôte, tout le trafic proxy vers le nom d'hôte spécifié est authentifié au niveau du serveur web d'origine. Vous pouvez utiliser les certificats client de votre propre infrastructure PKI pour authentifier des connexions à partir de CIS.
Pour télécharger un certificat client dans CIS :
-
Si vous utilisez une clé ECC générée par OpenSSL,, supprimez d'abord
-----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS-----du fichier de certificat. -
Assurez-vous que le certificat a le format suivant avant de le télécharger sur CIS.
$ cat app_example_com.pem -----BEGIN CERTIFICATE----- MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E ... SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7 -----END CERTIFICATE----- -
Remplacez les fins de ligne par la chaîne
\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 -
Générez le contenu :
$ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF )) -
Téléchargez le certificat client et la clé privée à partir de la CLI de CIS.
-
Activer l'extraction d'origine authentifiée sur le nom d'hôte spécifié via le CLI de CIS. Lier le certificat du client au nom d'hôte spécifique.
Remplacement d'un certificat client sans interruption
Pour le nom d'hôte :
- Téléchargez le nouveau certificat.
- Lier les nouveaux ID et nom d'hôte du certificat et les valeurs activées.
Pour la méthode globale :
- Téléchargez le nouveau certificat.
- Vérifiez que le nouveau certificat est actif.
- Une fois le certificat actif, supprimez l'ancien certificat.
Application d'un certificat client différent (au niveau zone et au niveau nom d'hôte) simultanément
- Téléchargez un certificat en suivant les étapes de la section " Zone-level authenticated origin pull"(extraction de l'origine authentifiée au niveau de la zone).
- Téléchargez plusieurs certificats en suivant les étapes indiquées dans la section Extraction de l'origine authentifiée par nom d'hôte à l'aide de certificats de clients.
Installation sur Apache et NGINX
Utilisez les instructions ci-après pour configurer la fonction Authenticated Origin Pull TLS pour les serveurs Web d'origine NGINX ou Apache.
Configuration d'Apache
Utilisez la flexibilité de bout en bout et mettez à jour la configuration SSL du serveur web d'origine en suivant les étapes suivantes.
-
Télécharger le certificat d'origine authentifié (
origin-pull-ca.pem). -
Stockez le certificat dans un fichier sur votre serveur web d'origine, par exemple à l'adresse
/path/to/origin-pull-ca.pem. -
Ajoutez les lignes suivantes à la configuration SSL pour votre serveur Web d'origine :
SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /path/to/origin-pull-ca.pem
Configuration de NGINX
Utilisez la flexibilité de bout en bout et mettez à jour la configuration SSL du serveur web d'origine en suivant les étapes suivantes.
-
Télécharger le certificat d'origine authentifié (
origin-pull-ca.pem). -
Stockez le certificat dans un fichier sur votre serveur web d'origine, par exemple à l'adresse
/etc/nginx/certs/cloudflare.crt. -
Ajoutez les lignes suivantes à la configuration SSL pour votre serveur Web d'origine :
ssl_client_certificate /etc/nginx/certs/cloudflare.crt; ssl_verify_client on;