Jan 192013
 

Varnish ne supporte pas le https, si vous voulez quand même l’utiliser il faut mettre un autre reverse-proxy devant qui supporte le https.
On peut utiliser pound.
– Installation :

apt-get install pound

– Activation :

sed -i 's/startup=0/startup=1/' /etc/default/pound

– Configuration /etc/pound/pound.cfg :

## see pound(8) for details
 
User            "www-data"
Group           "www-data"
 
LogLevel        0
 
Alive           30
TimeOut 120
ConnTO 5
Grace 120
 
Control "/var/run/pound/poundctl.socket"
 
## listen, redirect and ... to:
ListenHTTPS
        Address 0.0.0.0
        Port    443
        Cert    "/etc/ssl/blog.jeremm.fr.pem"
        xHTTP           0
        AddHeader "X-Forwarded-Proto: https"
        Service
                BackEnd 
                        Address 127.0.0.1
                        Port    80
                End
                Session
                        Type IP
                        TTL 60
                End
        End
End

– Le fichier pem doit contenir dans l’ordre : la clé privée, le certificat, le certificat de l’autorité de certification.
– Au niveau du backend, il faut mettre l’ip et le port où se trouve le varnish.
– Définissez plusieurs blocs Backend pour load-balancer les requêtes sur 2 varnishs.

Au niveau du varnish, ajoutez dans le vcl_recv :

if (!req.http.x-forwarded-proto) {

et

}

autour du bloc qui ajoute le X-Forwarded-For car il est déjà ajouté par pound.

Ajoutez ensuite dans le vcl_hash :

if (req.http.x-forwarded-proto) {
        hash_data(req.http.x-forwarded-proto);
}

Ensuite au niveau du code il faut que les liens et appels à d’autres objets (images,css,js,…) se fassent en https.
Souvent les codes php le font déjà en détectant le protocole grâce à

$_SERVER['HTTPS'] ou $_SERVER['SERVER_PORT']

Il faut utiliser le

$_SERVER['HTTP_X_FORWARDED_PROTO'])

Ou ajouter sur le vhost apache2 :

SetEnvIf X-Forwarded-Proto https HTTPS on

P.S. (20/01/2013) : La version 2.5 de pound fournie par les dépôts squeeze semble avoir une fuite mémoire. Préférez la version 2.6 qu’il faudra compiler http://www.apsis.ch/pound/Pound-2.6.tgz

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(required)

(required)

Spam protection by WP Captcha-Free