E quanto a diretiva de escuta? Você deve ter Listen 127.0.0.1:443
e Listen 127.0.0.2:443
em vez de apenas Listen *:443
.
Eu tenho me deparado com paredes por um tempo, então eu postei no stackoverflow, e fui apontado para cá ...
Estou tentando configurar vários endereços IP no Snow Leopard para que eu possa desenvolver com certificados SSL. Estou executando o XAMPP - não sei se esse é o problema, mas acho que teria os mesmos problemas, considerando que o apache interno está desativado.
Então, primeiro, olhei para o início dos IPs na inicialização. Eu comecei a correr com um novo StartupItem que funciona corretamente, porque eu posso fazer o ping do endereço IP:
ping 127.0.0.2
ping 127.0.0.1
E os dois trabalham. Então, agora eu tenho endereços IP, que, como você deve saber, não são padrão no OSx.
Eu editei o arquivo /etc/hosts
para incluir os novos sites também:
127.0.0.1 site1.local
127.0.0.2 site2.local
Eu já tinha mudado o httpd.conf para usar o httpd-vhosts.conf - porque eu tinha alguns sites rodando no único endereço IP.
Eu editei o arquivo vhosts para que um site seja assim:
<VirtualHost 127.0.0.1:80>
DocumentRoot "/Users/jim/Documents/Projects/site1/web"
ServerName site1.local
<Directory "/Users/jim/Documents/Projects/site1">
Order deny,allow
Deny from All
Allow from 127.0.0.1
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost 127.0.0.1:443>
DocumentRoot "/Users/jim/Documents/Projects/site1/web"
ServerName site1.local
SSLEngine On
SSLCertificateFile "/Applications/XAMPP/etc/ssl-certs/myssl.crt"
SSLCertificateKeyFile "/Applications/XAMPP/etc/ssl-certs/myssl.key"
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
<Directory "/Users/jim/Documents/Projects/site1">
Order deny,allow
Deny from All
Allow from 127.0.0.1
AllowOverride All
</Directory>
</VirtualHost>
No código acima, você pode alterar os números de 1 para 2 e é a configuração do segundo site. Eles usam o mesmo certificado, e é por isso que eles estão em endereços IP diferentes.
Eu também incluí a informação NameVirtualHost no topo do arquivo:
NameVirtualHost 127.0.0.1:80
NameVirtualHost 127.0.0.2:80
NameVirtualHost 127.0.0.1:443
NameVirtualHost 127.0.0.2:443
Eu posso pingar site1.local e site2.local. Eu posso usar o telnet ( telnet site2.local 80
) para acessar os dois sites. Mas no Safari só posso chegar ao primeiro site1.local
- navegar para site2.local
me dá a página principal localhost (que está incluída nos vhosts) ou me dá um acesso proibido!.
Estou certo do que fazer, qualquer sugestão seria incrível.
E quanto a diretiva de escuta? Você deve ter Listen 127.0.0.1:443
e Listen 127.0.0.2:443
em vez de apenas Listen *:443
.
Uma coisa a tentar: você pode ter mais de um host virtual usando o mesmo certificado no mesmo endereço IP, desde que você inclua esta diretiva:
NameVirtualHost 127.0.0.1:443
Veja link para um exemplo de arquivo de configuração.
Eu tenho a configuração idêntica funcionando, exceto pelo meu NameVirtualHost, onde, em vez de:
NameVirtualHost 127.0.0.1:80
NameVirtualHost 127.0.0.2:80
NameVirtualHost 127.0.0.1:443
NameVirtualHost 127.0.0.2:443
Eu só tenho:
NameVirtualHost *:80
E o meu nome de servidor no vhost HTTPS inclui a porta: 443, por exemplo,
<VirtualHost 127.0.0.1:443>
DocumentRoot "/Users/jim/Documents/Projects/site1/web"
ServerName site1.local:443
.........
Espero que isso ajude!