Como faço para criar um host virtual que funcione com http e https?

Como faço para criar um host virtual que funcione com http e https?

Foi assim que configurei um host virtual:

<VirtualHost mysite> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
  SSLEngine on
  SSLCertificateFile /Users/myusername/certs/server.crt
  SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>

Com esta configuração, posso visualizar meu site apenas com https, mas não com http. Quando desativo o SSLEngine, não consigo visualizar meu site com https, mas http funciona bem.

Como posso ajustar as linhas acima para poder ver meu site usando http e https?

Estou usando o OSX Lion, mas não acho que isso importe muito.

Obrigado.

Responder1

Você precisa criar dois hosts virtuais assim:

<VirtualHost mysite:80> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
</VirtualHost>


<VirtualHost mysite:443> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
  SSLEngine on
  SSLCertificateFile /Users/myusername/certs/server.crt
  SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>

O primeiro é um host regular HTTP, enquanto o segundo cuida do seu HTTPStráfego.

Responder2

Você provavelmente também deseja usar Includea diretiva para não precisar duplicar a configuração entre seus dois vhosts -http://httpd.apache.org/docs/2.2/mod/core.html#include.

informação relacionada