Pb Virtualhost ou DNS ?


#1

Bonjour,
Sur mon VPS, j’ai installé plusieurs sites grâce au Virtualhost. Cela fonctionne, mais le hic c’est que ça marche uniquement avec le www devant le nom de domaine.
Lorsque je tape l’url sans www, j’ai un message d’erreur :
Internal Server Error.

Voilà mon virtualhost :

<VirtualHost *:80>
ServerName monsite.com
ServerAlias www.monsite.com
ServerAlias *.monsite.com
ServerAdmin webmaster@monsite.com
DocumentRoot “/var/www/html/monsite.com”

<Directory /var/www/html/monsite.com>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

RewriteEngine on
    # Domaine principal, redirection vers dossier /www/
    RewriteCond %{HTTP_HOST} ^monsite\.com
    RewriteRule ^(.*) /www/$1 [L]

    # Sous-domaine(s), redirection vers les sous dossiers
    RewriteCond %{HTTP_HOST} ^([^\.]+)\.monsite\.com
    RewriteCond /var/www/html/monsite.com/%1 -d
    RewriteRule ^(.*) /%1/$1 [L]

C’est repris d’un tuto, mais comme je ne sais pas traduire tout cela, je ne sais pas s’il y a une erreur.

Ou mon problème vient il d’un mauvais paramétrage du DNS chez OVH ?

Merci :slight_smile:


#2

Bonjour,

Je n’ai jamais joué avec les règles de réécriture et ça fait un moment que je n’ai pas joué avec apache2, mais j’ai quand même ça à te proposer:

<VirtualHost *:80>
        # General
        ServerName monsite.com

        # Redirection
        Redirect / http://www.monsite.com
</VirtualHost>

<VirtualHost *:80>
        # General
        ServerName www.monsite.com
        ServerAdmin webmaster@monsite.com
        DocumentRoot /var/www/html/monsite.com

        # LOG
        LogLevel info warn
        ErrorLog ${APACHE_LOG_DIR}/monsite.com_error.log
        CustomLog ${APACHE_LOG_DIR}/monsite.com_access.log combined

        # Folder protection
        <Location />
			Options	Indexes FollowSymLinks MultiViews
			AllowOverride All
			Order allow,deny
			allow from all
        </Location>
</VirtualHost>

/!\ sauvegarde ton fichier à toi avant d’essayer le mien!

Pour répondre à la question de ton sujet, si tu as une erreur 500, c’est que tu arrives quelque part. Je soupçonne qu’elle soit généré par tes règles de réécriture, mais comme je ne sais pas les lire…


#3

Pour vérifier la résolution DNS on n’utilise pas un navigateur mais un outil de résolution DNS comme dig, host ou nslookup. Ensuite quand on a vérifié que le nom du site pointe vers la bonne adresse IP, on peut regarder la configuration du serveur.


#4

Merci à tous les deux.

Donc avant de toucher à mes paramétrages virtualhosts, il faut vérifier la résolution DNS.

J’ai donc fait une recherche sur nslookup et j’ai été ensuite dirigé vers la page dnslookup.fr qui m’écrit en bas de page, en rouge : " Aucune réponse n’est renvoyé par les serveurs DNS donc il est impossible de faire le moindre test". Je ne sais pas quoi faire du coup.

Mon site étant paramétré avec let’s encrypt, mon fichier virtualhost de type monsite.com.conf a été dupliqué automatiquement pour accepter le https, devenant monsite.com-le-ssl.conf.
Si je modifie le virtualhost “d’origine” pour le remplacer par celui proposé de @sk4hrr, y a t’il quelque chose à craindre, à faire au préalable ? Désactiver le ssl peut-être ?

En vous remerciant


#5

Salut,

voici le mien fonctionnel :

Listen 80
<VirtualHost *:80>
  ServerAdmin postmaster@xxx.com
  DocumentRoot /home/sites/xxx.com
  ServerName xxx.com
  ServerAlias www.xxx.com
  Redirect "/" "https://www.xxx.com/"
  <Directory /home/sites/xxx.com>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerAdmin postmaster@xxx.com
    DocumentRoot /home/sites/xxx.com
    ServerName xxx.com
    ServerAlias www.xxx.com
    Protocols h2 http/1.1
    <Directory /home/sites/xxx.com>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/xxx.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/xxx.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/xxx.com/chain.pem
    Header always set Strict-Transport-Security "max-age=15768000"
       <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php7.2-fpm.xxx.sock|fcgi://localhost"
      </FilesMatch>
  </VirtualHost>
</IfModule>

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AE$
SSLHonorCipherOrder     on
SSLCompression          off
SSLSessionTickets       off
SSLUseStapling          on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache        shmcb:/var/run/ocsp(128000)

Attention le SSLCipherSuite est tronqué ici.

Inspiré de ce generateur : https://mozilla.github.io/server-side-tls/ssl-config-generator/

Verifie au cas ou que le mod rewrite est bien activé, sait on jamais avec une mauvaise manip ^^

Pour les DNS, je crains que sans le nom de domaine on ne puisse t’aider.


#6

@2FR3, c’est top !
Je me questionnais à propos fichier SSL et j’ai jeté un oeil dedans, il s’avère que c’est une copie intégrale du fichier d’origine avec un petit supplément à la fin concernant let’s encrypt.
Avant ma manipe, j’ai fait un snapshot du server :wink:
J’ai donc modifié monsite.com.conf et monsite.com-le-ssl.conf avec le modèle
<VirtualHost *:80> que tu m’as fourni et ça fonctionne parfaitement !
Merci à tous de vous être penché sur ce post et d’avoir apporté votre assistance. Merci beaucoup.


#7

Ca fait toujours plaiz’ d’être remercié, c’est ce qu’une vraie communauté procure, du/le plaisir de partager !
N’hésites pas a revenir vers nous :wink: