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

Prochaine révision
Révision précédente
kb:linux:apache2:reverse_proxy_avec_https [2016/12/21 15:11] – modification externe 127.0.0.1kb: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====
  
-  apt-get install apache2+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.
  
-  a2enmod proxy +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).
-  a2enmod proxy_http +
-  a2enmod rewrite +
-  a2enmod ssl+
  
-  a2dissite 000-default.conf +====Installation et Configuration====
-  a2dissite default-tls.conf+
  
-  nano /etc/apache2/site-available/monsite.conf+Il faut évidemment installer Apache2 pour effectuer la manipulation
  
 <code> <code>
-<VirtualHost *:443>+# apt-get install apache2 
 +</code>
  
-# Décommentez cette ligne et indiquez-y l'adresse courriel de l'administrateur du site +Puis activer les mods Apache2 pour effectuer le Reverse Proxy et le HTTPS
-#ServerAdmin webmaster@my-domain.com+
  
-Classique, votre nom de domaine +<code> 
-ServerName wiki.virtit.fr+# a2enmod proxy 
 +# a2enmod proxy_http 
 +# a2enmod rewrite 
 +# a2enmod ssl 
 +a2enmod headers 
 +</code>
  
-# Si jamais vous avez d'autres domaines renvoyant sur ce site, utilisez la dircetive ServerAlias +Puis on désactive les sites par défaut
-# 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+<code> 
-ErrorLog /var/log/apache2/wiki.tld-error.log +a2dissite 000-default.conf 
-LogLevel warn +# a2dissite default-tls.conf 
-CustomLog /var/log/apache2/wiki.tld-access.log combined+</code>
  
-# SSL magic +Puis il reste juste à créer la configuration du site
-+
-# 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) +<code> 
-SSLCipherSuite HIGH:MEDIUM+nano /etc/apache2/site-available/monsite.conf 
 +</code>
  
-# On autorise SSLV3 et TLSv1, on rejette le vieux SSLv2 +Et rentré ceci avec les modifications adéquates 
-SSLProtocol all -SSLv2+<code> 
 +<VirtualHost *:443> 
 +  
 + #########GENERAL######### 
 + ServerName domain.tld
  
-La clef publique du serveur : + ###########SSL########### 
-SSLCertificateFile /etc/letsencrypt/live/monsite.tld/fullchain.pem+ # Il est nécessaire d'activer SSL, sinon c'est http qui sera utilisé 
 + SSLEngine On
  
-La clef privée du serveur: + Les clefs du serveur : 
-SSLCertificateKeyFile /etc/letsencrypt/live/monsite.tld/privkey.pem+ SSLCertificateFile /path/to/key/fullchain.pem 
 + SSLCertificateKeyFile /path/to/key/privkey.pem
  
-Theses lines only apply of the rewrite module is enabled. + On autorise TLSv1.2, on rejette les autres 
-# This is a security enhancement recommanded by the nessus tool. + SSLProtocol -all +TLSv1.2
-<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+ On autorise uniquement les algos de chiffrement élevé (high)
-ProxyRequests Off+ SSLCipherSuite HIGH:!kRSA:!kDHr:!kDHd:!kSRP:!aNULL:!3DES:!MD5
  
-Cetet option passe les nom d'hte au serveur, ce qui vous permet d'utiliser également des htes virtuels sur le serveur principal+        On fournit l'entête HSTS  
-ProxyPreserveHost On+ Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" 
 +  
 + ##########PROXY########## 
 + <IfModule mod_rewrite.c> 
 + RewriteEngine on 
 + RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) 
 + RewriteRule .* - [F] 
 + </IfModule>
  
-# Les lignes classiques de proxyComme dit au dessus, on passe le flux en http+ <IfModule mod_rewrite.c> 
-ProxyPass / http://monsite.lan/ + <IfModule mod_proxy.c> 
-ProxyPassReverse / http://monsite.lan/ + ProxyRequests Off 
-RewriteRule ^/(.*) http://monsite.lan/$1 [P,L]+ ProxyPreserveHost On 
 + ProxyPass / http://domain.lan/ 
 + ProxyPassReverse / http://domain.lan/ 
 + RewriteRule ^/(.*) http://domain.lan/$1 [P,L] 
 + </IfModule> 
 + </IfModule>
  
-</IfModule> + <Location /> 
-</IfModule> + Order deny,allow 
- + Allow from all 
-# Autoriser l'accès au contenu à travers le proxy. + </Location>
-#Ne l'enlevez pas si vous voulez que le site fonctionne ! +
-<Location /> +
-Order deny,allow +
-Allow from all +
-</Location>+
  
 +
 + ###########LOG###########
 + ErrorLog /var/log/apache2/domain.tld-error.log
 + LogLevel warn
 + CustomLog /var/log/apache2/domain.tld-access.log combined
 +
 </VirtualHost> </VirtualHost>
  
 +# Redirection des requettes HTTP vers l'HTTPS.
 <VirtualHost *:80> <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 domain.tld
-ServerName monsite.tld+
  
-#ServerAlias www2.my-domain.com www.my-other-domain.com *.yet-another-domain.com+ <IfModule mod_rewrite.c> 
 + RewriteEngine on 
 + RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK} 
 + RewriteRule .* - [F] 
 + </IfModule>
  
-# Theses lines only apply of the rewrite module is enabled. + Redirect permanent / https://domain.tld/
-# 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. + ###########LOG##########
-Redirect permanent https://monsite.tld/+ ErrorLog /var/log/apache2/domain.tld-error.log 
 + LogLevel warn 
 + CustomLog /var/log/apache2/domain.tld-access.log combined
  
 </VirtualHost> </VirtualHost>
 +
 </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.1482333081.txt.gz · Dernière modification : 2017/12/09 00:19 (modification externe)