# export MONDOMAINE="www.thierry-jaouen.fr" # export EXPIRATION="3650" # export MONSUJET="/C=FR/ST=France/L=Paris/O=Eez.fr/CN=$MONDOMAINE/emailAddress=postmaster@eez.fr"
# openssl req -x509 -nodes -days "$EXPIRATION" -newkey rsa:2048 -sha256 -keyout "$MONDOMAINE.key" -out "$MONDOMAINE.crt" -batch -subj "$MONSUJET"
Pour info, examiner le contenu:
# openssl x509 -in "$MONDOMAINE.crt" -noout -text
Pré-requis:
# a2enmod rewrite
et:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$ [NC] RewriteRule ^ https://%{HTTP_HOST}/? [R=301,L]
Facultatif: Le petit “?
” c'est pour éliminer les paramètres éventuelles.
Avec Apache >= 2.4 , et écrira plutôt:
RewriteRule ^ https://%{HTTP_HOST} [R=301,QSD,L]
Pré-requis: un proxy (par exemple Nginx
) qui renseigne l'entête “X-Forwarded-Proto
” avec le “scheme” ou protocol: “https
” ou “http
” ou “rien
”.
Apache <2.4 :
SetEnvIf X-Forwarded-Proto https HTTPS=on
Apache >= 2.4 :
<If "%{HTTP:X-Forwarded-Proto} == 'https'" > # On est forcement en https: le marquer pour le php, etc... SetEnv HTTPS on </If>
Source: http://www.metaltoad.com/blog/running-drupal-secure-pages-behind-proxy
Forcer le HSTS (redirection “https
” forcé).
Pré-requis: le module “headers” doit être chargé.
# a2enmod headers
Dans mon exemple (derrière un proxy), je préfère appliquer le HSTS que si la connexion est déjà en HTTPS:
<If "%{HTTP:X-Forwarded-Proto} == 'https'" > # HSTS ( 30 jours ) Header always set Strict-Transport-Security "max-age=2592000; includeSubdomains" </If>