NameVirtualHost *: 443 não tem VirtualHosts no debian squeeze

3

Eu tenho um servidor Apache 2.2 que funciona, mas estou recebendo os NameVirtualHost *:443 has no VirtualHosts avisos ao reiniciar. Mas eu faço ter VirtualHosts que correspondem a *:443 .

O sistema é o Debian squeeze. O arquivo ports.conf tem esta aparência:

NameVirtualHost *:80
Listen 80

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

Aqui está a saída ao executar a opção -S com 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

Os dois hosts virtuais são definidos em arquivos que vivem em /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>

e aqui está o outro:

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

    
por user35042 09.03.2013 / 16:23

3 respostas

7

Eu encontrei o problema. Depois que Andrew B sugeriu postar mais configurações no pastebin, examinei todos os arquivos com mais cuidado e descobri que tinha DOIS locais onde a diretiva NameVirtualHost *:443 aparecia: um em ports.conf e um em um arquivo no diretório /etc/apache2/conf.d todos os arquivos são carregados durante a inicialização do Apache.

Eu removi uma das instâncias e o aviso foi embora.

(Observe que todo esse problema desaparece no Apache 2.4, pois NameVirtualHost é implícito para combinações de endereço / porta que aparecem em vários hosts virtuais.)

    
por 10.03.2013 / 15:53
1

Eu também uso o Debian Squeeze, por favor veja abaixo como meu ports.conf se parece.

O comentário vem do arquivo padrão, note que você adicionou NameVirtualHost *:443 , eu não o fiz.

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>

Observação: caso você prefira manter NameVirtualHost *:443 em ports.conf , adicione um link para ter um VirtualHost padrão para 443 da seguinte forma:

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

Então eu atualizaria /etc/apache2/sites-enabled/q2a adicionando <Directory>...</Directory> (é onde você coloca algumas opções, eu completei seu código adicionando alguns exemplos).

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

Por fim, altero /etc/apache2/sites-enabled/tcert-dev atualizando a raiz do documento em <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>

Espero que ajude.

    
por 10.03.2013 / 15:14
0

Esse é um aviso dizendo que não há configuração de virtualhosts para *: 443

Seria algo parecido com

<virtualhost *:443>

</virtualhost>

Se não coincidir com *: 443, então, será lançado o aviso.

    
por 09.03.2013 / 16:54