3 votes

NameVirtualHost *:443 n'a pas de VirtualHosts sur debian squeeze

J'ai un serveur Apache 2.2 qui fonctionne, mais je reçois le message suivant NameVirtualHost *:443 has no VirtualHosts des avertissements lors du redémarrage. Mais je faire ont des VirtualHosts qui correspondent *:443 .

Le système est Debian Squeeze. Le site ports.conf ressemble à ceci :

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
   NameVirtualHost *:443
   Listen 443
</IfModule>

Voici le résultat de l'exécution du programme -S avec apache2ctl :

% /usr/sbin/apache2ctl -S 
[Sat Mar 06 10:07:11 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
         default server q2a-dev.example.org (/etc/apache2/sites-enabled/q2a:1)
         port 443 namevhost q2a-dev.example.org (/etc/apache2/sites-enabled/q2a:1)
         port 443 namevhost tcert-dev.example.org (/etc/apache2/sites-enabled/tcert-dev:1)
*:80                   is a NameVirtualHost
         default server emailtest-dev.example.org (/etc/apache2/sites-enabled/emailtest:1)
         port 80 namevhost emailtest-dev.example.org (/etc/apache2/sites-enabled/emailtest:1)
Syntax OK

Les deux hôtes virtuels sont définis dans des fichiers se trouvant dans le répertoire /etc/apache2/sites-enabled :

# /etc/apache2/sites-enabled/q2a
<VirtualHost *:443>
  DocumentRoot /usr/share/question2answer
  ServerName q2a-dev.example.org
  ServerAlias q2a-dev

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/q2a-dev.pem
  SSLCertificateKeyFile /etc/ssl/private/q2a-dev.key

  DirectoryIndex index.php
</VirtualHost>

et en voici une autre :

# /etc/apache2/sites-enabled/tcert-dev
<VirtualHost *:443>
  DocumentRoot /srv/www/tools
  ServerName tcert-dev.example.org
  ServerAlias tcert-dev

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/tcert-dev.pem
  SSLCertificateKeyFile /etc/ssl/private/tcert-dev.key

  <Directory "/">
    AllowOverride None
  </Directory>
</VirtualHost>

7voto

James Reese Points 17

J'ai trouvé le problème. Après qu'Andrew B ait suggéré de poster une plus grande partie de la configuration sur pastebin, j'ai regardé tous les fichiers avec plus d'attention et j'ai découvert que j'avais DEUX endroits où la balise NameVirtualHost *:443 est apparue : une dans ports.conf et un autre dans un fichier du répertoire /etc/apache2/conf.d dont tous les fichiers sont chargés lors du démarrage d'Apache.

J'ai supprimé l'une des instances et l'avertissement a disparu.

(Notez que ce problème disparaît avec la version 2.4 d'Apache en tant que NameVirtualHost est implicite pour les combinaisons adresse/port apparaissant dans plusieurs hôtes virtuels).

1voto

J'utilise aussi Debian Squeeze, veuillez voir ci-dessous comment ma ports.conf ressemble.

Le commentaire vient du fichier par défaut, notez que vous avez ajouté NameVirtualHost *:443 Je ne l'ai pas fait.

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Note : au cas où vous préférez garder NameVirtualHost *:443 en ports.conf alors vous devez ajouter un lien afin d'avoir un VirtualHost par défaut pour 443 comme suit :

ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl

Ensuite, je mettrais à jour /etc/apache2/sites-enabled/q2a en ajoutant <Directory>...</Directory> (c'est là que vous mettez certaines options, j'ai complété votre code en ajoutant quelques exemples).

<VirtualHost *:443>
  DocumentRoot /usr/share/question2answer
  ServerName q2a-dev.example.org
  ServerAlias q2a-dev

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/q2a-dev.pem
  SSLCertificateKeyFile /etc/ssl/private/q2a-dev.key

  <Directory /usr/share/question2answer>
    DirectoryIndex index.php

    # here you can also add some other options like:
    Options -Indexes FollowSymLinks MultiViews
    Order deny,allow
    Allow from all
    AllowOverride All
  </Directory>
</VirtualHost>

Enfin, je changerais /etc/apache2/sites-enabled/tcert-dev en mettant à jour la racine du document dans <Directory>...</Directory> .

<VirtualHost *:443>
  DocumentRoot /srv/www/tools
  ServerName tcert-dev.example.org
  ServerAlias tcert-dev

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/tcert-dev.pem
  SSLCertificateKeyFile /etc/ssl/private/tcert-dev.key

  <Directory /srv/www/tools>
    AllowOverride None
  </Directory>
</VirtualHost>

J'espère que cela vous aidera.

0voto

Ed Ball Points 1341

C'est un avertissement disant qu'il n'y a pas de virtualhosts configurés pour *:443.

Cela ressemblerait à quelque chose comme

<virtualhost *:443>

</virtualhost>

S'il ne correspond pas à *:443, l'avertissement sera lancé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X