Configurer un site en https pour un sous-domaine avec un proxy reverse

Cet article fait partie de la collection Site Web avec Apache 2, le guide pas à pas

Je viens de demander un certificat SSL pour le site Internet. Il faut configurer Apache 2 pour que :

  • les demandes en https utilisent le certificat SSL
  • toutes les visites en http soit redirigé en https

Configurer

Je complète le fichier de configuration /etc/apache2/sites-available/100-com.perdu.extra.conf. J'ajoute un bloc de redirection vers https :

RewriteEngine On
RewriteCond %{SERVER_NAME} =extra.perdu.com
RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Puis, j'ajoute un bloc pour la configuration SSL / https. Il s'agit d'un copier/coller de la configuration http. J'effectue quelques modifications :

  • ErrorLog et CustomLog pour l’écriture des fichiers logs
  • RewriteRule pour la redirection des URL sans www
  • Ajout des options SSL
  • Ajout de la gestion des certificats
<IfModule mod_ssl.c>
<VirtualHost *:443>

    ServerName extra.perdu.com

    ProxyPreserveHost On
    ProxyPass        "/" "http://103.224.182.253/"
    ProxyPassReverse "/" "http://103.224.182.253/"
    
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/extra.perdu.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/extra.perdu.com/privkey.pem

</VirtualHost>
</IfModule>

Les options SSL sont à créer une seule fois sur le serveur. Ces options sont communes à tous les sites Internet que je configure. Les options dans /etc/letsencrypt/options-ssl-apache.conf sont les suivantes :

SSLEngine on

# intermediate configuration, tweak to your needs
SSLProtocol             all -SSLv2 -SSLv3

SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

SSLHonorCipherOrder     on

SSLCompression          on
#SSLSessionTickets       off

# -- Securité supplémentaire

SSLOptions +StrictRequire

# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"

# Always ensure Cookies have "Secure" set (JAH 2012/1)
Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"

Ce qui donne une configuration globale suivante :

<VirtualHost *:80>

    ServerName extra.perdu.com

    # ProxyPass devient obsolète avec RewriteRule
    ProxyPass /.well-known/acme-challenge !
    Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge

    <Directory "/var/www/html/.well-known/acme-challenge">
        Options None
        AllowOverride None
        Require all granted
        AddDefaultCharset off
    </Directory>

    # Proxy* deviennent obsolète avec Rewrite*
    ProxyPreserveHost On
    ProxyPass        "/" "http://103.224.182.253/"
    ProxyPassReverse "/" "http://103.224.182.253/"

    RewriteEngine On
    RewriteCond %{SERVER_NAME} =info.mindcast.fr
    RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>

    ServerName extra.perdu.com

    ProxyPreserveHost On
    ProxyPass        "/" "http://103.224.182.253/"
    ProxyPassReverse "/" "http://103.224.182.253/"
    
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/extra.perdu.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/extra.perdu.com/privkey.pem

</VirtualHost>
</IfModule>


Recharger

Après ces modifications, je recharge la configuration de Apache 2 :

sudo service apache2 reload

Liens

Entrer votre commentaire. La syntaxe wiki est autorisée:
   ___   ____   __  __   ____  ____ 
  / _ \ / __ \ / / / /  / __/ / __ \
 / ___// /_/ // /_/ /  / _/  / /_/ /
/_/    \___\_\\____/  /___/  \____/
 
  • Partager le signet (social bookmarking)
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Reddit
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur blogmarks
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Google
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Socializer
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Spurl
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur StumbleUpon
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Tailrank
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Technorati
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Wists
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Yahoo! Myweb
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur BobrDobr
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Memori
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Faves
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Favorites
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Facebook
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Newsvine
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Twitter
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur myAOL
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur RawSugar
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur LinkaGoGo
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Mister Wong
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Wink
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Diigo
  • Partager "Configurer un site en https pour un sous-domaine avec un proxy reverse" sur Netvouz
  • informatique/solutions/configurer_un_site_web_apache_2/https_proxy_apache2.txt
  • Dernière modification: 2019/09/01 18:23
  • par Cédric ABONNEL