[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Rediriger http vers https avec Let's Encrypt et Apache2 sous Debian



Comment rediriger http vers https avec Let's Encrypt et Apache2 sous
Debian ?

>> Je cherche à configurer Let's Encrypt pour plusieurs domaines, sur Apache2.
>>
>> - Première question : Faut t'il créer 1 ou 2 certificat, pour
>> WWW.Domain.TLD et Domain.TLD ?
> tu peux créer un certificat pour plusieurs sous-domaines en même temps :
> domain.tld, mail.domain.tld, ww1.domain.tld, ww2.domain.tld, etc
>
> J'en ai fait au moins 6 comme ça :-) (Ne pas oublier le mail pour l'échange
> en TLS.
>
>> - Deuxième question : Apache2, par défaut, permet t'il bien de rediriger
>> http vers https, sans avoir a modifier la configuration de https ?
> Pour Apache, dans le(s) vHost(s), tu fais une redirection du ServerName
> sous le port 80 vers le ServerName sous le port 443 (par exemple) :
>
> <VirtualHost *:80>
>         ServerName www.example.com
>         ServerAdmin webmaster@localhost
>         RewriteEngine on
>         RewriteCond %{HTTPS} !on
>         RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
>
>         DocumentRoot /var/www/html
>
>         ErrorLog ${APACHE_LOG_DIR}/error.log
>         CustomLog ${APACHE_LOG_DIR}/access.log combined
> </VirtualHost>
>
> <IfModule mod_ssl.c>
>         <VirtualHost _default_:443>
>                 # Protocols h2 http/1.1
>                 ServerName www.example.com
>                 ServerAdmin webmaster@localhost
>
>                 DocumentRoot /var/www/html
>
>                 ErrorLog ${APACHE_LOG_DIR}/error.log
>                 CustomLog ${APACHE_LOG_DIR}/access.log combined
>
>                 SSLEngine on
>                 SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
>                 SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
>                 SSLProtocol all -SSLv2 -SSLv3
>                 SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
>                 SSLHonorCipherOrder on
>                 SSLCompression off
>                 SSLOptions +StrictRequire
>                 Header always set Strict-Transport-Security "max-age=31536000;"
>         </VirtualHost>
> </IfModule>
>
> Un problème cependant si tu veux activer le HTTP2 pour l'instant, il faut utiliser une
> passerelle CGI pour PHP (php7.0-fpm) et remplacer le mpm_prefork_module par un
> autre, qui soit compatible.


Bonjour Philippe, et, merci pour ton retour.
J'ai tenté d'appliquer tes conseils.
J'ai bien pu recréer un certificat pour plusieurs domaines, avec et sans
le www.
A ce niveau la, ça fonctionne bien, j'ai pu les tester en https.

J'ai bien ajouté un mail valide, même si je n'ai reçu aucune
confirmation dans cette boite mail.
Je ne sais pas si il n'aurait pas été envoyé sur la machine en local.
Tu disais qu'il faut un mail pour l'échange TLS, la, je ne saisi pas.
J'ai pu constater que depuis mes tests, mon FTP ne fonctionne plus,
mais, ce n'est pas très grave pour le moment, je ne l'utilise que en test.

Par contre, ce qui me dérange d'avantage, c'est que je n'arrive toujours
pas à faire la redirection de http à https.

Voilà mon VirtualHost :

# VirtualHost du domaine unis-pour-la-planete.com
<VirtualHost *:80>
ServerName www.unis-pour-la-planete.com
ServerAlias unis-pour-la-planete.com

# La redirection ne fonctionne pas ! (www).domaine ne cherche pas le https !
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# J'ai tenté cette redirection également sans succès.
#RewriteEngine On
#RewriteCond %{HTTP_HOST} ^unis-pour-la-planete.com$
#RewriteRule ^(.*)$ https://www.unis-pour-la-planete.com/ [QSA,L,R=301]

DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# VirtualHost pour SSL sur le port 443.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.unis-pour-la-planete.com
ServerAlias unis-pour-la-planete.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# Quatres lignes pour le certificat Let's Encrypt.
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/green-nrj.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/green-nrj.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/green-nrj.com/chain.pem
# Sur quels critères compléter les lignes maintenant ?

<Directory /var/www/html/democracyos>
Options FollowSymLinks
AllowOverride All
</Directory>

<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

# Cette ligne indique le répertoire du site par rapport au documentroot
/var/www/html défini dans Apache2.
# Cette ligne indique l’url finale. Par exemple : http://localhost/redmine.
<Location /redmine>
RailsEnv production
RackBaseURI /redmine
Options -MultiViews
</Location>
</VirtualHost>
</IfModule>


En complément, voilà le VirtualHost que j'ai créé pour l'adresse IP, il
se peut qu'il y ait un conflit ?
La redirection de l'adresse IP, elle, fonctionne correctement vers le
nom de domaine que j'ai choisi comme étant le domaine par défaut, et, en
https.
Par contre, encore une fois, le domaine
http://www.unis-pour-la-planete.com ne redirige pas automatiquement en
https, via ma configuration précédente.
Je suis sur Debian SID et, la dernière version de Apache2.

<VirtualHost 139.99.173.195:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^139.99.173.195$
RewriteRule ^(.*)$ https://www.unis-pour-la-planete.com/ [QSA,L,R=301]
# Ajout du S de httpS. La redirection vers https fonctionne pour l'IP.
# Par contre IP/redmine ne fonctionne pas.

# Définir l'emplacement du dossier Democracyos
<Directory /var/www/html/democracyos>
Options FollowSymLinks
AllowOverride All
</Directory>

# Définir l'emplacement du dossier Redmine.
<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

# Indique le répertoire du site par rapport au documentroot
/var/www/html défini dans Apache2.
<Location /redmine>
RailsEnv production
# Indique l’url finale. Par exemple : http://localhost/redmine.
RackBaseURI /redmine
Options -MultiViews
</Location>
</VirtualHost>

# Ajout de l'écoute du port 443 et la configuration des autres projets.
<VirtualHost *:443>
ServerName unis-pour-la-planete.com
ServerAlias www.unis-pour-la-planete.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# Quatres lignes pour le certificat Let's Encrypt.
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/green-nrj.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/green-nrj.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/green-nrj.com/chain.pem

# Définir l'emplacement du dossier Democracyos
<Directory /var/www/html/democracyos>
Options FollowSymLinks
AllowOverride All
</Directory>

# Définir l'emplacement du dossier Redmine.
<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

# Indique le répertoire du site par rapport au documentroot
/var/www/html défini dans Apache2.
<Location /redmine>
RailsEnv production
# Indique l’url finale. Par exemple : http://localhost/redmine.
RackBaseURI /redmine
Options -MultiViews
</Location>
</VirtualHost>


Reply to: