SSL Wildcard com virtualhosting baseado em nome?

2

Eu tenho dois sites que exigem domínios diferentes, mas ambos devem usar o mesmo servidor executando o Apache httpd e também usar SSL. Aqui está o exemplo:

  • aplicativo legado www.example.com que recebe alto tráfego
  • beta.example.com novo site com alterações incompatíveis com versões anteriores da estrutura de URL

Cada domínio tem um caminho de raiz de documento diferente. O SNI não é uma opção, mas eu tenho um certificado SSL curinga para * .example.com. Atribuir um segundo IP não é uma opção.

Como eu configuro o Apache para usar o certificado SSL curinga para qualquer tráfego na porta 443 e, em seguida, continuo com a hospedagem virtual baseada em nome depois do handshake SSL?

Em nginx, pode ser um bloco if baseado em nome de domínio e ter a configuração SSL fora disso. Existe um equivalente que funcionará com o Apache 2.2?

Editar: O SNI não é uma opção por solicitação do meu cliente, devido ao menor suporte do navegador em comparação com a alternativa. Eu estou procurando por alguma maneira de servir o certificado usando o padrão antigo, em seguida, aplique as definições clássicas do VHost na porta ssl assim como elas são aplicadas na porta 80.

    
por TheLonelyGhost 11.08.2014 / 09:03

1 resposta

3

Se você tiver um certificado ssl curinga, isso significa que você pode usar esse certificado no arquivo de configuração de seus ambos vhosts.

Você pode simplesmente fornecê-los nos arquivos de configuração do vhost:

<VirtualHost *:443>
  ServerName www.example.com
  SSLCertificateFile /path/to/file.crt
  SSLCertificateKeyFile /path/to/file.key
  ...
</VirtualHost>
<VirtualHost *:443>
  ServerName beta.example.com
  SSLCertificateFile /path/to/file.crt
  SSLCertificateKeyFile /path/to/file.key
  ...
</VirtualHost>

Não se esqueça: a identificação do virtualhost será baseada no cabeçalho da solicitação Host: , e não no SNI. O SNI será usado apenas para a identificação do vhost antes do handshake SSL. Não há problema em usar vhosts diferentes na parte SNI do handshake SSL e na parte HTTP, embora essas consultas extraordinárias causem alguns avisos no log do apache.

    
por 11.08.2014 / 10:06