#1 Le 21/11/2018, à 11:37
- clem156
Configuration Apache - sous domaines dynamiques et un fixe / HTTPS
Bonjour,
J'ai actuellement quelques problèmes de configuration d'Apache sur un site Symfony. Ça fonctionnait en local, mais en prod, impossible de faire fonctionner comme je le souhaiterais. Je m'explique :
J'ai un site : monsite.com ainsi que sa démo, demo.monsite.com. Jusque là, tout fonctionnait, j'avais rajouté l'entrée demo.monsite.com dans mes DNS sur OVH.
Plus récemment, j'ai souhaité que chaque utilisateur ait son sous-domaine : user1.monsite.com, user2.monsite.com, ... j'ai réussi à configurer Apache, et ça fonctionne, ainsi que l'HTTPS.
MAIS (!), comme j'ai demo.monsite.com, je veux aussi pouvoir aller sur : user1.demo.monsite.com, user2.demo.monsite.com. Et là, impossible d'accéder à userX.demo.monsite.com : "Impossible de trouver l'adresse IP du serveur".
Sur la prod, ça me parait plus compliqué, j'ai l'HTTPS à gérer et ça rajoute de la complexité ! Déjà, je ne sais pas si il faut modifier le fichier "monsite-le-ssl.conf" ou "monsite.conf" (ou les deux !).
J'utilise Letsencrypt. J'ai créé un certificat "Wildcard" avec la commande suivante :
certbot certonly --manual --server https://acme-v02.api.letsencrypt.org/directory -d monsite.com -d *.monsite.com
Ça a bien fonctionné, mais pas pour les sous domaines de demo.
Je ne sais plus où regarder, et un peu d'aide me ferait le plus grand plaisir
Voilà ma config de vhosts en local, elle fonctionne :
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp64/www
<Directory "c:/wamp64/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName demo.monsite.local
ServerAlias *.demo.monsite.local
DocumentRoot c:/wamp64/www/monsite/web
DirectoryIndex app_demo.php
<Directory c:/wamp64/www/monsite/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app_demo.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName monsite.local
ServerAlias *.monsite.local
DocumentRoot c:/wamp64/www/monsite/web
DirectoryIndex app_dev.php
<Directory c:/wamp64/www/monsite/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
La config dans le fichier "monsite.conf" de apache :
<VirtualHost *:80>
ServerName demo.monsite.com
ServerAlias *.demo.monsite.com
DocumentRoot /var/vhosts/monsite/current/web
DirectoryIndex app_demo.php
<Directory /var/vhosts/monsite/current/web>
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app_demo.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine On
RewriteCond %{SERVER_NAME} =demo.monsite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:80>
ServerName monsite.com
ServerAlias *.monsite.com
DocumentRoot /var/vhosts/monsite/current/web
DirectoryIndex app.php
<Directory /var/vhosts/monsite/current/web>
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine On
RewriteCond %{SERVER_NAME} =monsite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Et enfin, la config dans "monsite-le-ssl.conf" :
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName demo.monsite.com
ServerAlias *.demo.monsite.com
DocumentRoot /var/vhosts/monsite/current/web
DirectoryIndex app_demo.php
<Directory /var/vhosts/monsite/current/web>
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app_demo.php [QSA,L]
</IfModule>
</Directory>
<Directory /var/www/project/web/bundles>
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/monsite.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/monsite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName monsite.com
ServerAlias *.monsite.com
DocumentRoot /var/vhosts/monsite/current/web
DirectoryIndex app.php
<Directory /var/vhosts/monsite/current/web>
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
<Directory /var/www/project/web/bundles>
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/monsite.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/monsite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem
</VirtualHost>
</IfModule>
Merci beaucoup (beaucoup beaucoup beaucoup !)
Hors ligne
#2 Le 21/11/2018, à 15:37
- krodelabestiole
Re : Configuration Apache - sous domaines dynamiques et un fixe / HTTPS
"Impossible de trouver l'adresse IP du serveur".
ça c'est pas un problème de virtualhost, et encore moins un problème de SSL, c'est un problème de DNS.
Il faut t'assurer que tu aies bien un wildcard sur les sous-domaines de demo.monsite.com au niveau de la gestion de ton nom de domaine.
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#3 Le 21/11/2018, à 15:57
- clem156
Re : Configuration Apache - sous domaines dynamiques et un fixe / HTTPS
Merci beaucoup pour ta réponse
Dans mes DNS, "*.monsite.com" ne suffit pas ? Je dois aussi créer "*.demo.monsite.com" ?
Hors ligne
#4 Le 21/11/2018, à 16:22
- krodelabestiole
Re : Configuration Apache - sous domaines dynamiques et un fixe / HTTPS
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#5 Le 21/11/2018, à 16:45
- clem156
Re : Configuration Apache - sous domaines dynamiques et un fixe / HTTPS
Eh oui, tout simplement ... ça fonctionne
Enfin ça fonctionne presque, ça pointe bien sur le serveur, mais j'ai maintenant un problème de HTTPS.
Il faut peut être que je génère à nouveau les certificats en rajoutant "-d *.demo.monsite.com" à la commande suivante ?
certbot certonly --manual --server https://acme-v02.api.letsencrypt.org/directory -d monsite.com -d *.monsite.com
Mais je l'avais déjà tenté, et dans /etc/letsencrypt/live, je n'avais toujours qu'un symlink "monsite.com". Est-ce normal de ne pas avoir "demo.monsite.com" ?
Encore merci, tu m'enlèves une grosse épine du pied
EDIT : c'était bien ça ... après avoir pas mal galéré pendant 3 jours, j'ai enfin un site qui tourne !
Dernière modification par clem156 (Le 21/11/2018, à 20:37)
Hors ligne