IBM Cloud Docs
Authenticated-Origin-Pull

Authenticated-Origin-Pull

Ursprungswebserver überprüfen, ob eine Webanforderung stammt von IBM Cloud® Internet Services durch authentifizierte Origin-Pulls. CIS verwendet TLS-Client-Zertifikatauthentifizierung, eine Funktion, die von den meisten Webservern unterstützt wird, um eine CIS Zertifikat beim Verbindungsaufbau zwischen CIS und der ursprüngliche Webserver. Durch die Validierung dieses Zertifikat auf Ihrem Ursprungs-Web-Server wird der Zugriff auf CIS Verbindungen begrenzt.

Ein Authenticated-Origin-Pull wird bei der Verwendung der Web Application Firewall (WAF) von Bedeutung. Nachdem Ihr Ursprungswebserver authentifizierte Ursprungs-Pulls erzwungen hat, werden alle HTTPS-Anfragen außerhalb CIS werden daran gehindert, Ihren Ursprung zu erreichen.

Der authentifizierte Origin Pull wird mithilfe einer der folgenden Optionen konfiguriert:

  • Authentifizierter Origin Pull auf Zonenebene durch Verwendung CIS Zertifikate
  • Authentifizierter Origin Pull auf Zonenebene durch Verwendung von Kundenzertifikaten
  • Pro-Hostname authentifizierter Origin Pull durch Verwendung von Kundenzertifikaten

Clientzertifikate werden nach Ablauf nicht von CIS gelöscht, es sei denn, eine Löschen- oder Ersetzen-Anforderung wird an die API CIS gesendet. Allerdings werden Anfragen an Ihrem Ursprung gelöscht, wenn dieser nur ein gültiges Client-Zertifikat akzeptiert.

Authenticated-Origin-Pull funktioniert nicht im SSL-Modus Off (not secure) oder Client-to-Edge.

Authentifizierte Ursprungs-Pull-Operation auf Zonenebene mit CIS-Zertifikaten

CIS verwendet die folgende CA zum Unterzeichnen von Zertifikaten für den Authenticated-Origin-Pull-Service:

Laden Sie das Zertifikat herunter und speichern Sie die Datei auf Ihrem Ursprungs-Web-Server, z. B. in /path/to/origin-pull-ca.pem.

Um den authentifizierten Ursprung zu aktivieren, ziehen Sie global auf eine Zone:

  1. Installieren Sie das Zertifikat auf dem Ursprungs-Web-Server, um alle Verbindungen zu authentifizieren.
  2. Konfigurieren Sie CIS mit End-to-End flexible
  3. Konfigurieren Sie die Ursprungs-Web-Server für die Annahme von Clientzertifikaten
  4. Authentifizierte Ursprungs-Pull-Operation über die CIS-CLI aktivieren

Auf Zonenebene authentifizierter Origin Pull mit Kundenzertifikaten

  1. Wenn Sie einen von OpenSSL generierten ECC-Schlüssel verwenden, entfernen Sie zuerst -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- aus der Zertifikatsdatei.

  2. Stellen Sie sicher, dass das Zertifikat und der Schlüssel im folgenden Format vorliegen, bevor Sie das Zertifikat in CIShochladen:

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. Ersetzen Sie die Zeilenendungen durch die Zeichenfolge \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
    
  4. Erstellen Sie die Nutzdaten:

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. Laden Sie das Clientzertifikat und den privaten Schlüssel über die CIS CLI hoch.

  6. Aktivieren Sie Authenticated-Origin-Pull über CIS CLI

Authenticated-Origin-Pull per Hostname unter Verwendung von Kundenzertifikaten

Wenn Sie den Authenticated-Origin-Pull per Hostname aktivieren, wird der gesamte Proxy-Datenverkehr zum angegebenen Hostnamen auf dem Ursprungs-Web-Server authentifiziert. Sie können Clientzertifikate aus Ihrer eigenen Public Key Infrastructure (PKI) verwenden, um Verbindungen von CISzu authentifizieren.

So laden Sie ein Clientzertifikat in CIShoch:

  1. Wenn Sie einen von OpenSSL generierten ECC-Schlüssel verwenden, entfernen Sie zuerst -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- aus der Zertifikatsdatei.

  2. Stellen Sie sicher, dass das Zertifikat das folgende Format hat, bevor Sie es in CIShochladen.

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. Ersetzen Sie die Zeilenendungen durch die Zeichenfolge \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
    
  4. Erstellen Sie die Nutzdaten:

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. Laden Sie das Clientzertifikat und den privaten Schlüssel über die CIS CLI hoch.

  6. Aktivieren Sie den Authenticated-Origin-Pull für den angegebenen Hostnamen über die CIS CLI. Verknüpfen Sie das Clientzertifikat mit dem jeweiligen Hostnamen.

Clientzertifikat ohne Ausfallzeiten ersetzen

Für Hostname:

  1. Laden Sie das neue Zertifikat hoch
  2. Verknüpfen Sie die neue Zertifikats-ID und den Hostnamen und die aktivierten Werte

Für global:

  1. Laden Sie das neue Zertifikat hoch
  2. Überprüfen Sie, ob sich das neue Zertifikat im Status „Aktiv“ befindet
  3. Löschen Sie das alte Zertifikat, sobald das Zertifikat aktiv ist.

Wenden Sie gleichzeitig ein anderes Clientzertifikat (auf der Ebene der Zone und des Hostnamens) an.

  1. Laden Sie ein Zertifikat hoch, indem Sie die Schritte im Authentifizierter Origin Pull auf Zonenebene Abschnitt
  2. Laden Sie mehrere Zertifikate hoch, indem Sie die Schritte im Pro Hostname authentifizierter Origin Pull unter Verwendung von Kundenzertifikaten Abschnitt

Installation auf Apache und NGINX

Verwenden Sie die folgenden Anweisungen zum Konfigurieren von TLS-Authenticated-Origin-Pulls für die Web-Server von NGINX oder Apache.

Apache einrichten

Verwenden Sie End-to-End-flexible und aktualisieren Sie die SSL-Konfiguration des Ursprungs-Web-Servers unter Befolgung der folgenden Schritte.

  1. Laden Sie das Authenticated-Origin-Pull-Zertifikat herunter (origin-pull-ca.pem)

  2. Speichern Sie das Zertifikat in einer Datei auf Ihrem Ursprungs-Web-Server, z. B. in /path/to/origin-pull-ca.pem.

  3. Fügen Sie die folgenden Zeilen zur SSL-Konfiguration für Ihren Ursprungs-Web-Server hinzu:

    SSLVerifyClient require
    SSLVerifyDepth 1
    SSLCACertificateFile /path/to/origin-pull-ca.pem
    

NGINX einrichten

Verwenden Sie End-to-End-flexible und aktualisieren Sie die SSL-Konfiguration des Ursprungs-Web-Servers unter Befolgung der folgenden Schritte.

  1. Laden Sie das Authenticated-Origin-Pull-Zertifikat herunter (origin-pull-ca.pem)

  2. Speichern Sie das Zertifikat in einer Datei auf Ihrem Ursprungs-Web-Server, z. B. in /etc/nginx/certs/cloudflare.crt.

  3. Fügen Sie die folgenden Zeilen zur SSL-Konfiguration für Ihren Ursprungs-Web-Server hinzu:

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;