Outils pour utilisateurs

Outils du site


kb:linux:apache2:reverse_proxy_avec_https

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
kb:linux:apache2:reverse_proxy_avec_https [2017/05/24 14:34] beukb:linux:apache2:reverse_proxy_avec_https [2020/03/30 11:47] (Version actuelle) beu
Ligne 1: Ligne 1:
 ======Reverse Proxy avec HTTPS====== ======Reverse Proxy avec HTTPS======
 +====Principe====
  
 +Si vous souhaitez héberger sous une même IP plusieurs services WEB qui sont soit incompatibles entre eux (versions de PHP par exemple), ou bien que certains services sont critiques, il est peut être préférables de séparer ces services WEB dans des machines distinctes.
 +
 +L'objectif est d'avoir un Apache2 qui recevra toutes les requêtes HTTP et HTTPS et qui fera du proxy vers les autres machines via leur nom de domaines local (ou par leur adresses IP).
  
 ====Installation et Configuration==== ====Installation et Configuration====
  
-  apt-get install apache2+Il faut évidemment installer Apache2 pour effectuer la manipulation
  
-  a2enmod proxy +<code> 
-  a2enmod proxy_http +# apt-get install apache2 
-  a2enmod rewrite +</code>
-  a2enmod ssl+
  
-  a2dissite 000-default.conf +Puis activer les mods Apache2 pour effectuer le Reverse Proxy et le HTTPS
-  a2dissite default-tls.conf+
  
-  nano /etc/apache2/site-available/monsite.conf+<code> 
 +# a2enmod proxy 
 +# a2enmod proxy_http 
 +# a2enmod rewrite 
 +# a2enmod ssl 
 +# a2enmod headers 
 +</code>
  
 +Puis on désactive les sites par défaut
 +
 +<code>
 +# a2dissite 000-default.conf
 +# a2dissite default-tls.conf
 +</code>
 +
 +Puis il reste juste à créer la configuration du site
 +
 +<code>
 +# nano /etc/apache2/site-available/monsite.conf
 +</code>
 +
 +Et rentré ceci avec les modifications adéquates
 <code> <code>
 <VirtualHost *:443> <VirtualHost *:443>
   
  #########GENERAL#########  #########GENERAL#########
- ServerName wiki.virtit.fr + ServerName domain.tld
- Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" +
- +
  
  ###########SSL###########  ###########SSL###########
Ligne 29: Ligne 49:
  
  # Les clefs du serveur :  # Les clefs du serveur :
- SSLCertificateFile /etc/letsencrypt/live/wiki.virtit.fr/fullchain.pem + SSLCertificateFile /path/to/key/fullchain.pem 
- SSLCertificateKeyFile /etc/letsencrypt/live/wiki.virtit.fr/privkey.pem+ SSLCertificateKeyFile /path/to/key/privkey.pem
  
  # On autorise TLSv1.2, on rejette les autres  # On autorise TLSv1.2, on rejette les autres
  SSLProtocol -all +TLSv1.2  SSLProtocol -all +TLSv1.2
  
- # On autorise uniquement les clefs de cryptage longue (high).+ # On autorise uniquement les algos de chiffrement élevé (high).
  SSLCipherSuite HIGH:!kRSA:!kDHr:!kDHd:!kSRP:!aNULL:!3DES:!MD5  SSLCipherSuite HIGH:!kRSA:!kDHr:!kDHd:!kSRP:!aNULL:!3DES:!MD5
  
 +        # On fournit l'entête HSTS 
 + Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
   
  ##########PROXY##########  ##########PROXY##########
Ligne 50: Ligne 72:
  ProxyRequests Off  ProxyRequests Off
  ProxyPreserveHost On  ProxyPreserveHost On
- ProxyPass / http://wiki.virtit.lan/ + ProxyPass / http://domain.lan/ 
- ProxyPassReverse / http://wiki.virtit.lan/ + ProxyPassReverse / http://domain.lan/ 
- RewriteRule ^/(.*) http://wiki.virtit.lan/$1 [P,L]+ RewriteRule ^/(.*) http://domain.lan/$1 [P,L]
  </IfModule>  </IfModule>
  </IfModule>  </IfModule>
Ligne 63: Ligne 85:
   
  ###########LOG###########  ###########LOG###########
- ErrorLog /var/log/apache2/wiki.tld-error.log + ErrorLog /var/log/apache2/domain.tld-error.log 
- LogLevel warn<VirtualHost *:443> + LogLevel warn 
- + CustomLog /var/log/apache2/domain.tld-access.log combined
-# Décommentez cette ligne et indiquez-y l'adresse courriel de l'administrateur du site +
-#ServerAdmin webmaster@my-domain.com +
- +
-# Classique, votre nom de domaine +
-ServerName wiki.virtit.fr +
- +
-# Si jamais vous avez d'autres domaines renvoyant sur ce site, utilisez la dircetive ServerAlias +
-# Vous pouvez utiliser le joker * pour prendre en compte tout les sous-domaines +
-#ServerAlias www2.my-domain.com www.my-other-domain.com *.yet-another-domain.com +
- +
-# L'emplacement des logs. +
-ErrorLog /var/log/apache2/wiki.tld-error.log +
-LogLevel warn +
-CustomLog /var/log/apache2/wiki.tld-access.log combined +
- +
-# SSL magic +
-+
-# Il est nécessaire d'activer SSL, sinon c'est http qui sera utilisé +
-SSLEngine On +
- +
-# On autorise uniquement les clefs de cryptage longue (high) et moyenne (medium) +
-# SSLCipherSuite HIGH:MEDIUM +
- +
-# On autorise SSLV3 et TLSv1, on rejette le vieux SSLv2 +
-# SSLProtocol all -SSLv2 +
- +
-# La clef publique du serveur : +
-SSLCertificateFile /etc/letsencrypt/live/monsite.tld/fullchain.pem +
- +
-# La clef privée du serveur: +
-SSLCertificateKeyFile /etc/letsencrypt/live/monsite.tld/privkey.pem +
- +
-# Theses lines only apply of the rewrite module is enabled. +
-# This is a security enhancement recommanded by the nessus tool. +
-<IfModule mod_rewrite.c> +
-RewriteEngine on +
-RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) +
-RewriteRule .* - [F] +
-</IfModule> +
-<IfModule mod_rewrite.c> +
-<IfModule mod_proxy.c> +
- +
-#Ne commentez jamais cette ligne, elle évite que votre serveur soit utilisé comme proxy par des gens mal-intentionnés. +
-ProxyRequests Off +
- +
-# Cetet option passe les nom d'hte au serveur, ce qui vous permet d'utiliser également des htes virtuels sur le serveur principal. +
-ProxyPreserveHost On +
- +
-# Les lignes classiques de proxy. Comme dit au dessus, on passe le flux en http. +
-ProxyPass / http://monsite.lan/ +
-ProxyPassReverse / http://monsite.lan/ +
-RewriteRule ^/(.*) http://monsite.lan/$1 [P,L] +
- +
-</IfModule> +
-</IfModule> +
- +
-# Autoriser l'accès au contenu à travers le proxy. +
-#Ne l'enlevez pas si vous voulez que le site fonctionne ! +
-<Location /> +
-Order deny,allow +
-Allow from all +
-</Location> +
- +
-</VirtualHost> +
- +
- +
-<VirtualHost *:80> +
-# Cette partie va permettre de rediriger d'éventuelles requtes en HTTP vers l'HTTPS +
-# Vous pouvez également configurer le proxy à la place de la règle de réécriture si vous voulez autoriser l'accès en HTTP +
-ServerName monsite.tld +
- +
-#ServerAlias www2.my-domain.com www.my-other-domain.com *.yet-another-domain.com +
- +
-# Theses lines only apply of the rewrite module is enabled. +
-# This is a security enhancement recommanded by the nessus tool. +
-<IfModule mod_rewrite.c> +
-RewriteEngine on +
-RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK} +
-RewriteRule .* - [F] +
-</IfModule> +
- +
-# On renvoit toutes les requtes HTTP vers l'HTTPS. +
-Redirect permanent / https://monsite.tld/ +
- +
-</VirtualHost> +
- CustomLog /var/log/apache2/wiki.tld-access.log combined+
   
 </VirtualHost> </VirtualHost>
Ligne 158: Ligne 94:
 <VirtualHost *:80> <VirtualHost *:80>
   
- ServerName wiki.virtit.fr+ ServerName domain.tld
  
  <IfModule mod_rewrite.c>  <IfModule mod_rewrite.c>
Ligne 166: Ligne 102:
  </IfModule>  </IfModule>
  
- Redirect permanent / https://wiki.virtit.fr/+ Redirect permanent / https://domain.tld/
  
  ###########LOG###########  ###########LOG###########
- ErrorLog /var/log/apache2/wiki.tld-error.log+ ErrorLog /var/log/apache2/domain.tld-error.log
  LogLevel warn  LogLevel warn
- CustomLog /var/log/apache2/wiki.tld-access.log combined+ CustomLog /var/log/apache2/domain.tld-access.log combined
  
 </VirtualHost> </VirtualHost>
Ligne 177: Ligne 113:
 </code> </code>
  
 +Il suffira d'acitiver le site 
 +
 +<code>
 +# a2ensite monsite.conf
 +</code>
 +
 +puis de relancer apache2
 +
 +<code>
 +# service apache2 restart
 +</code>
  
 +Et le tour est joué!
kb/linux/apache2/reverse_proxy_avec_https.1495636448.txt.gz · Dernière modification : 2017/12/09 00:19 (modification externe)