Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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 !) smile

Hors ligne

#2 Le 21/11/2018, à 15:37

krodelabestiole

Re : Configuration Apache - sous domaines dynamiques et un fixe / HTTPS

clem156 a écrit :

"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.

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 smile

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

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 smile
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 tongue


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