Bonjour à tous.tes,
Voilà.
Situation de départ :J'ai installé un CMS sur un LAMPS (Debian 11) que j'auto-héberge.
Je passe par Gandi pour ma résolution DNS.
Ce CMS est résolu par un FQDN et un
CNAME pour qu'il soit touché via deux requêtes :
www.mondomaine.net et
mmm.mondomaine.net.
ConfigurationPour le coup j'ai récupéré deux certificats Let's Encrypt via Certbot afin que les deux requêtes aient leurs propres certificats.
N'étant pas certain qu'Apache2 puisse gérer 2 certificats dans son
.conf dans le dossier
sites-available j'ai donc créé 2 vhosts :
www.conf et
mmm.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
Et
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.mondomaine.net
ServerAdmin webmaster@localhost
DocumentRoot /home/www
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.mondomaine.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mondomaine.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.mondomaine.net/chain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /home/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
<Ifmodule mod_negociation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Au>
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
</IfModule>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mmm.mondomaine.net
ServerAdmin webmaster@localhost
DocumentRoot /home/www
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mmm.mondomaine.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mmm.mondomaine.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mmm.mondomaine.net/chain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /home/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
<Ifmodule mod_negociation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Au>
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
</IfModule>
Mon problème :
Conséquence de tout ça, j'ai bien accès en mode sécurisé à https://www.mondomaine.net ; par contre quand je pointe vers https://mmm.mondomaine.net, je suis redirigé directement sur https://www.mondomaine.net avec le certificat de www.mondomaine.net...
Or je souhaiterais que ce soit transparent, que je puisse naviguer sur le site à la fois via un https://www.mondomaine.net, avec son certificat, ET via https://mmm.mondomaine.net, avec son certificat... et tout ça en gardant le bon FQDN dans la barre de navigation...
Je pense que j'ai merdouillé (sic) dans mes règles de Mod_Rewrite, mais je n'arrive pas à toucher le problème...
Un coup de main serait le bienvenu...
Merci d'avance \o/