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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
<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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
<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"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
<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 !)

EDIT : en fait il fallait plutot se concentrer sur les DNS que sur la config serveur ... et rajouter *.demo.monsite.com dans les DNS