Tiratura di origine autenticata

L'Authenticated Origin Pull è una funzione di sicurezza che aiuta a garantire una comunicazione sicura tra IBM Cloud® Internet Services e il server di origine. Utilizza il TLS reciproco ( mTLS ) per autenticare sia il server CIS che il server di origine, consentendo solo alle richieste provenienti dal server IBM Cloud® Internet Services fidato di accedere al vostro server. Questa configurazione protegge il server di origine da accessi non autorizzati e migliora la sicurezza complessiva delle applicazioni web.

I server Web di origine convalidano che una richiesta Web proviene da IBM Cloud® Internet Services attraverso pull di origine autenticati. CIS utilizza l'autenticazione del certificato client TLS, una funzionalità supportata dalla maggior parte dei server Web per presentare un certificato di CIS quando stabilisce una connessione tra CIS e il server Web di origine. Validando questo certificato al server web di origine, l'accesso è limitato alle connessioni CIS.

Un pull di origine autenticato è importante quando si sfrutta il Web Application Firewall (WAF). Dopo che il server web di origine impone il pull di origine autenticato, tutte le richieste di HTTPS al di fuori di CIS vengono bloccate per raggiungere l'origine.

È possibile configurare il pull di origine autenticato utilizzando una delle seguenti opzioni:

  • Pull dell'origine autenticata a livello di area utilizzando i certificati CIS
  • Pull origine autenticata a livello di zona utilizzando i certificati cliente
  • Pull origine autenticata per nome host utilizzando i certificati cliente

I certificati client non vengono cancellati da CIS alla scadenza a meno che non venga inviata una richiesta di cancellazione o sostituzione alla API CIS. Tuttavia, le richieste vengono eliminate nella tua origine se la tua origine accetta solo un certificato client valido.

Autenticated Origin Pull non funziona in Modalità SSL Off (non sicura) o Client - to - Edge.

Pull origine autenticata a livello di zona con CIS certificati

Questa opzione consente l'accesso sicuro ai contenuti dal server di origine autenticando le richieste con i certificati forniti da CIS a livello di zona.

CIS utilizza la seguente CA per firmare i certificati per il servizio di tiratura di origine autenticata:

Scaricare il certificato e memorizzare il file sul server web di origine, ad esempio in /path/to/origin-pull-ca.pem.

Per abilitare l'origine autenticata, esegui il pull globalmente su una zona:

  1. Installare il certificato sul server web di origine per autenticare tutte le connessioni.
  2. Configurare CIS con la flessibilità End-to-End.
  3. Configurare il server Web di origine per accettare i certificati dei client.
  4. Abilitare il pull dell'origine autenticata utilizzando la CLI CIS.

Estrazione dell'origine autenticata a livello di zona con certificati personalizzati

Questa opzione consente l'accesso sicuro ai contenuti dal server di origine utilizzando i certificati caricati dal cliente per l'autenticazione a livello di zona.

  1. Se si utilizza una chiave ECC generata da OpenSSL,, rimuovere prima -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- dal file del certificato.

  2. Assicurarsi che il certificato e la chiave siano nel formato seguente prima di caricarli su CIS:

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. Sostituire le enditure di linea con la stringa \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. Costruire il payload:

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

  5. Carica il certificato client e la chiave privata dalla CLI CIS.

  6. Abilita il pull dell'origine autenticata dalla CLI CIS.

Estrazione dell'origine autenticata per nome di host utilizzando i certificati del cliente

Questa opzione consente di proteggere l'accesso ai contenuti dal server di origine autenticando le richieste con certificati del cliente su base individuale.

Quando si abilita il pull di origine autenticato per hostname, tutto il traffico proxy verso l'hostname specificato viene autenticato sul server web di origine. È possibile utilizzare i certificati client dalla propria infrastruttura di chiave pubblica per autenticare le connessioni da CIS.

Per caricare un certificato client in CIS:

  1. Se si utilizza una chiave ECC generata da OpenSSL,, rimuovere prima -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- dal file del certificato.

  2. Assicurarsi che il certificato sia nel seguente formato prima di caricarlo su CIS.

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. Sostituire le enditure di linea con la stringa \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. Costruire il payload:

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

  5. Carica il certificato client e la chiave privata dalla CLI CIS.

  6. Abilita il pull dell'origine autenticata sul nome host specificato tramite la CLI CIS. Collegare il certificato del client al nome host specifico.

Sostituzione di un certificato client senza downtime

Per hostname:

  1. Caricare il nuovo certificato.
  2. Collegare l'ID e l'hostname del nuovo certificato e i valori abilitati.

Per globale:

  1. Caricare il nuovo certificato.
  2. Verificare che il nuovo certificato sia in stato Attivo.
  3. Dopo che il certificato è attivo, eliminare il vecchio certificato.

Applicare contemporaneamente un diverso certificato client (a zona e livello hostname)

  1. Caricare un certificato seguendo i passaggi della sezione Estrazione dell'origine autenticata a livello di zona.
  2. Caricare più certificati seguendo i passaggi della sezione Estrazione dell'origine autenticata per nome di host utilizzando i certificati dei clienti.

Installazione su Apache e NGINX

Utilizza le seguenti istruzioni per configurare i Push di origine autenticati TLS per i server web di origine NGINX o Apache.

Impostazione di Apache

Usare la flessibilità End-to-End e aggiornare la configurazione SSL del server web di origine utilizzando i seguenti passaggi.

  1. Scaricare il certificato di origine autenticato ( origin-pull-ca.pem).

  2. Memorizzate il certificato in un file sul vostro server web di origine, ad esempio in /path/to/origin-pull-ca.pem.

  3. Aggiungere le seguenti righe alla configurazione SSL per il server web di origine:

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

Impostazione di NGINX

Usare la flessibilità End-to-End e aggiornare la configurazione SSL del server web di origine utilizzando i seguenti passaggi.

  1. Scaricare il certificato di origine autenticato ( origin-pull-ca.pem).

  2. Memorizzate il certificato in un file sul vostro server web di origine, ad esempio in /etc/nginx/certs/cloudflare.crt.

  3. Aggiungere le seguenti righe alla configurazione SSL per il server web di origine:

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