Offloading di applicazioni WordPress

Back

Introduzione

Questo documento descrive la procedura per implementare SSL offloading per applicazioni WordPress tramite LBL® Global Distributed Gateway.
Per eseguire SSL offloading è necessario pubblicare la chiave pubblica del certificato digitale che verrà utilizzata dal client per crittografare la comunicazione tra client e server.
In ambienti complessi, la generazione e pubblicazione del certificato digitale può essere un processo laborioso, per cui si preferisce demandare questi compiti a LBL® Global Distributed Gateway che agisce da reverse proxy per le applicazioni.
In una tale configurazione (vedi Figura 1: SSL offloading) il traffico SSL termina su LBL, che inoltra il traffico in chiaro sul server.

L’utilizzo di un reverse proxy può generare confusione alle applicazioni WordPress che non capiscono quale nome dominio, protocollo o porta viene usata dal client per stabilire la connessione. Nel caso di SSL offloading, WordPress viene contattato in porta 80 e quindi desume che la comunicazione con il client sia in chiaro quando invece è in SSL sulla porta 443.

Per aggirare il problema vengono aggiunte alla richiesta degli header per comunicare a WordPress, opportunamente configurato, le informazioni delle richieste eseguite dal client.
X-Forwarded-Host: host originale richiesto dal client;
X-Forwarded-Port: porta utilizzata dal client;
X-Forwarded-Proto: tipo di protocollo utilizzato tra client e LBL® Global Distributed Gateway.


Figure 1:SSL Offloading

Prerequisiti

Prima di iniziare la procedura, bisogna avere installato WordPress, LBL® Global Distributed Gateway e avere effettuato un primo bilanciamento per verificare che tutto sia impostato correttamente in porta 80.

Per maggiori informazioni, fare riferimento al documento “ADC first usage” presso il sito www.oplon.net.

File wp-config.php

Editare il file wp-config.php che, normalmente, si trova in /var/www/html/ e aggiungere il codice seguente prima del commento /* That’s all, stop editing! Happy publishing. */:

####################### LBL SETTINGS #######################

if(isset($_SERVER[‘HTTP_X_FORWARDED_HOST’]))

$_SERVER[‘HTTP_HOST’] = $_SERVER[‘HTTP_X_FORWARDED_HOST’];

if(strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false){

$_SERVER[‘HTTPS’]=’on’;

define(scheme_lbl, “https”);

define(‘FORCE_SSL_ADMIN’, true);

} else {

define(scheme_lbl, “http”);

}

define(‘WP_HOME’, scheme_lbl . “://” . $_SERVER[‘HTTP_HOST’]);

define(‘WP_SITEURL’, scheme_lbl . “://” . $_SERVER[‘HTTP_HOST’]);

####################### LBL SETTINGS #######################

/* That’s all, stop editing! Happy publishing. */

Regole di rewriting

A questo punto bisogna creare una regola di rewriting:

1. Collegarsi nella propria installazione LBL® Global Distributed Gateway;

2. Dal menu laterale andare su ADC Settings->Rewrite management->Rewrite header rules e creare una nuova regola chiamandola x-forwarded-headers;

3. Creare 4 variabili con le seguenti impostazioni:

Name From Value Enable
host-name INNERVAR REQUEST_HTTP_HOST_NAME true
port INNERVAR REQUEST_HTTP_HOST_PORT true
proto INNERVAR REQUEST_HTTP_SCHEME true
real-ip INNERVAR REQUEST_CLIENT_ADDRESS true

Table 1: Variables

Figure 1: Entities

4. Creare 4 nuove Entities con le seguenti impostazioni:

entityName Action Value caseSensitive Enable
X-Forwarded-Host change %host-name%:%port% false true
X-Forwarded-Port change %port% false true
X-Forwarded-Proto change %proto% false true
X-Real-IP change %real-ip% false true

Table 2: Entities

Figure 2: Variables

5. Se non esistente, creare il listener SSL in porta 443, impostando l’endPointsGrouping.

6. Nell’endpoint grouping aggiungere un nuovo virtual domain: www.mysite.com.

Figure 2: Virtual Domain

7. Nei settaggi del virtualDomain impostare la regola di rewriting x-forwarded-headers ed indicare negli endpoint l’indirizzo del server WordPress.

Address Port uriPath SSL Enable
192.168.10.10 80 / false true

Table 3: Endpoint

Figure 3: Endpoint

7. Salvare e reinizializzare.

Test listener in porta 443

Verificare che le modifiche apportate abbiano permesso di visualizzare il sito WordPress in HTTPS digitando sulla barra di ricerca l’indirizzo del proprio sito, per esempio https://www.mysite.com.

Sei interessato alle nostre soluzioni?