-
yes - ServerAlias é o modo padrão para conseguir isso. Às vezes é preferível selecionar o www.myserver.com como a identidade "mais preferida" e ter "myserver.com" como o alias, mas isso realmente não faz diferença a menos que você possa canonizar (converter links para os favoritos) URLs em algum momento .
2.
Edit: parece que eu não entendi a pergunta do OP, então isso é principalmente irrelevante
resposta curta (para hospedar vários sites SSL em um servidor apache)
-
a solução mais simples, é um host virtual baseado em IP ... suporta todos os navegadores - pergunte ao seu ISP por um segundo endereço IP. Então você tem 1 IP por certificado SSL. Veja abaixo, por exemplo, configuração.
-
Indicação do nome do servidor - não safari XP ou antigo ou android antigo - funciona apenas com 1 IP - link
Resposta longa (e garoto que me deixei levar com essa resposta ... ;-) aqui está uma rápida introdução sobre SSL e nome de hostings virtuais ....
Hospedagem virtual baseada em nome, é uma estratégia de compartilhar o servidor da web entre sites baseados no cabeçalho "Host" apresentado pelo cliente (ou seja, o navegador da Web, etc.).
Esta é uma extensão HTTP 1.1 e, para usá-la, o apache lê o conteúdo da solicitação e analisa o cabeçalho, ou seja, é assim:
GET /index.htm HTTP/1.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20100101 Firefox/8.0
Host: www.google.co.uk <-- apache checks this value
No entanto, com o handshake TLS usado em conexões SSL, o servidor se identifica antes que o cabeçalho do host seja enviado, usando o campo "nome comum" no certificado SSL.
Por isso (usando o tradicional ... SSL v1, navegadores antigos etc, Windows XP) só pode haver 1 identidade SSL por endereço IP, porque a primeira coisa que o servidor faz é se identificar como www.amazon.com, o que não pode mudar depois ...
Basicamente, as diferenças são assim, em solicitações normais de link
client: hello server
server: hello client
client: please give me web XXX
server: here is websiteXXX
mas para solicitações https: // é mais assim:
client: hello server
server: I am website XXX
client: ok, go ahead and give me website XXX
server: here is websiteXXX
Então, basicamente, para um "suporte a todos os navegadores", incluindo soluções antigas, você precisa perguntar ao seu provedor por outro endereço IP público e vincular seu segundo host virtual ao segundo ip do primeiro ...
No entanto, existem algumas alternativas, que permitem várias identidades SSL em um único endereço IP que funcionam na maioria dos navegadores modernos, por exemplo, certificados SNI ou curingas.
- certs curinga, não é adequado nesta situação particular porque os nomes dos servidores são de nível de domínio, por exemplo, badger.com e monkey.com, em vez de badger.server.com e monkey.server.com
no entanto, com Indicação do nome do servidor , você diz ao servidor qual Host deseja, durante o processo de handshake e o servidor podem fornecer o certificado correto. Parece que o servidor voltará ao certificado padrão , portanto, pode ser uma boa estratégia quando você tem um site SSL "primário" e um menos importante, que pode aceitar alguma perda de solicitações do usuário .
Basicamente, as diretivas para adicionar hosts virtuais SSL são semelhantes, exceto que você está adicionando apenas Hosts virtuais simples, em vez de NameVirtualHosts.
#if not done elsewhere in httpd.conf incldue these
Listen 443
LoadModule ssl_module modules/mod_ssl.so
#this does work for wildcard SSL certs like *.myserver.com (and SNI???)
NameVirtualHost *:443
<VirtualHost 1.1.1.1:443>
SSLEngine On
ServerName address1.com
DocumentRoot /var/www/adderss2
SSLCertificateFile /etc/httpd/conf/domaina_ssl/zimbra.zmb.moc.crt
</VirtualHost>
<VirtualHost 1.1.1.2:443>
SSLEngine on
ServerName address2.com
DocumentRoot /var/www/adderss2
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>