Múltiplos domínios com SSL no mesmo IP

23

Eu sei que um IP dedicado é necessário para configurar o SSL. O que acontece se adicionarmos SSL para domínios que compartilham um IP? (Namevirtualhost)

    
por nitins 26.03.2010 / 11:27

9 respostas

28

Eu acho que é uma boa idéia como explicar qual é o problema com hosts virtuais e SSL / TLS.

Quando você se conecta a um servidor apache por HTTP, envia um conjunto de cabeçalhos http. Eles se parecem com isso:

GET /index.html HTTP/1.1
 Host: www.nice-puppies.com

Se você tiver hospedagem virtual, o apache examinará o campo hosts e, em seguida, obterá o index.html correto para você. O problema é quando você adiciona SSL / TLS. O servidor configura a criptografia antes de você enviar sua solicitação http. Portanto, o servidor não sabe se você está indo para www.nice-puppies.com ou www.evil-haxxor.com até que a autenticação / criptografia seja concluída. O servidor não pode adivinhar (como o envio do certificado errado dá-lhe uma mensagem de erro desagradável).

Uma solução é um certificado curinga (como mencionado acima), que é válido para * .nice-puppies.com. Dessa forma, você pode usar o mesmo certificado para vários domínios, mas não pode ter um certificado * .com (ok, você pode, mas seria muito ruim para todos os outros), então em geral você precisará de IP separado para cada Domínio HTTPS.

    
por 26.03.2010 / 12:09
8

A solução real para este problema é "Indicação do Nome do Servidor":

link

Ele está apenas começando a ser implementado em servidores e clientes da web, portanto, não é algo que você possa usar agora, mas esperamos que daqui a alguns anos isso não seja um grande problema.

    
por 28.03.2010 / 15:46
2

O problema é que o certificado SSL está vinculado ao endereço IP e não ao nome do host. Quando a conexão entra no endereço IP para uma solicitação HTTPS, a primeira ação é estabelecer a comunicação SSL passando o certificado do servidor e / ou o certificado do cliente. Durante este estágio do handshake de conexão, o servidor Apache não tem como saber qual é a solicitação que está por vir. Isso é diferente para o tráfego HTTP (não SSL), pois depois que a conexão é estabelecida, o servidor Apache pode determinar a configuração do host virtual a ser usada se o cliente enviar o cabeçalho Host ou então transferi-lo para o primeiro host virtual configurado.

Se você tivesse vários hosts virtuais sob o mesmo domínio, poderia configurar um único certificado curinga no endereço IP e ter vários hosts virtuais com nomes de servidor diferentes definidos; no entanto, se esses nomes de servidor não estiverem sob o mesmo nome de domínio, eles gerarão erros do servidor cliente. Isso funcionaria, pois o certificado curinga seria válido para todos os nomes de host sob esse nome de domínio. Você precisaria de outro endereço IP se os nomes de domínio fossem diferentes, pois o primeiro certificado definido para esse endereço IP seria o apresentado para conectar clientes.

    
por 28.03.2010 / 06:25
1

Isso pode ser adicionado em um único certificado ssl como SAN (Subject Alternative Name). Na minha excperiance eu tive que solicitar um certificado de organização sll. eu usei globalsign.

    
por 26.03.2010 / 11:56
1

Na verdade, com software moderno, você PODE servir vários sites HTTPS em um único endereço IP, usando um novo recurso chamado 'SNI - Server Name Indication'.

link

link

Eu ainda não usei isso, mas parece bom para sites internos e de intranet. A maioria dos navegadores modernos suporta SNI. O IE6 não suporta SNI, mas o IE7 faz.

(Correção: 20100426 - Não há suporte para SNI no Windows XP. O Windows Vista e superior suportam o SNI. Consulte "Seção 2.2.3" em link ).

    
por 06.04.2010 / 00:09
1

Estou trabalhando no mesmo problema. Como meu teste, o IE7 e posterior (somente no Win7 e Vista) / Chrome / Firefox / Safari / Opera suportam "Indicação do nome do servidor". De fato, se o navegador usa o Tsl 1.0, ele suporta "Indicação do Nome do Servidor".

    
por 23.12.2010 / 11:05
0

Acho que o OP está perguntando o que acontece se ele adicionar um certificado SSL a um IP que tenha muitos hosts virtuais. Se nenhum dos outros virtualhosts usar um certificado SSL, ele deverá ficar desimpedido.

    
por 26.03.2010 / 11:53
0

Um certificado de UC é definitivamente o caminho a percorrer: link

    
por 26.03.2010 / 12:06
0

Se você tentar adicionar dois certificados no mesmo IP, somente o primeiro certificado de leitura será usado em todos os lugares. Um IP - um certificado SSL.

Se você deseja obter mais certificados SSL no mesmo IP, considere obter vários domínios (o chamado UCC - confira @ godaddy ) ou certificado curinga (mais caro).

    
por 26.03.2010 / 11:51