Tenho um servidor virtual hospedado no ISP com 2 endereços IPv4 públicos. Quero executar vários subdomínios (mais de 2) com o Apache e servi-los via HTTP e HTTPS. O certificado SSL é curinga para *.mydomain.com.
Tentei configurar o Apache no Debian desta forma, mas falhei. Meus hosts virtuais não são aceitos ou recebo erros de SSL. (Eu sei que o Apache não vê o nome do host solicitado antes de servir o certificado, mas o certificado inclui todos os subdomínios possíveis)
Por favor, ajude a criar um httpd.conf que funcione melhor com o layout de configuração Apache do Debian.
Todos os detalhes:
- Apache escutando em *:80 para HTTP e *:443 para HTTPS
- Todos os NameVirtualHosts, aliases etc. devem ser definidos para ambas as portas/protocolos ao mesmo tempo
- padrão mydomain.com e www.mydomain.com devem fazer root em /var/www
- NameVirtualHosts adicionais para foo.mydomain.com e bar.mydomain.com etc. que podem ser configurados especialmente, por exemplo, para ter outro DocumentRoot
Responder1
Apachepodeveja o nome do host solicitado, usandoIndicação do nome do servidor TLS.
No entanto, isso requer um navegador relativamente recente. Por exemplo, aqueles que usam o Internet Explorer no Windows XP receberão mensagens de incompatibilidade de certificados para domínios adicionais. (Felizmente, os usuários do WinXP/IE estão quase extintos.)Artigo da Wikipédiatem uma lista eaqui está uma página de testese você não tiver certeza.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>
(Sub)domínios adicionais:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /sites/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.example.com
DocumentRoot /sites/foo
SSLEngine on
SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>