O Nginx precisa de um endereço IP exclusivo para cada site servido por HTTPS, como o Apache?

1

Com o Apache, a configuração HTTPS mais comum, você precisa de 1 endereço IP por site. O Nginx tem essa mesma limitação ou um único endereço IP pode atender a um número ilimitado de sites HTTPS?

    
por Jason Christa 09.11.2010 / 00:51

4 respostas

5

O Nginx pode ser recompilado com SNI para permitir isso, mas também requer sua versão do OpenSSL para suportá-lo (0.8. 9 eu acredito). Consulte aqui para obter mais informações.

É importante notar também que o Apache agora suporta SNI, ele foi backported para o 2.2. *

O problema que você provavelmente enfrentará é a compatibilidade do navegador. O guia acima (nginx) declara a seguinte compatibilidade, mas eu não verifiquei isso:

* Opera 8.0;
* MSIE 7.0 (but only on Windows Vista or higher);
* Firefox 2.0 and other browsers using Mozilla Platform rv:1.8.1;
* Safari 3.2.1 (Windows version supports SNI on Vista or higher);
* and Chrome (Windows version supports SNI on Vista or higher, too).

    
por 09.11.2010 / 01:05
5

A limitação está no nível SSL, não no nível do servidor. Todos servidores da web têm isso.

    
por 09.11.2010 / 01:01
1

É uma limitação do protocolo SSL original. A criptografia começa imediatamente antes que o cliente envie um nome de host para o servidor. Se você tiver todos os hosts virtuais compartilhando a mesma conexão, o servidor terá que adivinhar qual certificado será exibido e, se escolher o errado, o cliente emitirá o aviso de certificado inválido.

Dito isto, há algumas maneiras de contornar isso há algum tempo. A pior maneira é usar portas diferentes para cada host virtual para que você tenha sites como https://www.example.com:449/ . Se todos os seus virtualhosts estiverem no formato "alguma coisa" .example.com, você poderá usar um certificado curinga *.example.com . Os navegadores suportaram Nomes Alternativos de Assunto no certificado por anos, mas se você fizer isso, precisará obter um novo certificado sempre que quiser alterar a lista de nomes alternativos.

O mais novo garoto no bloco é "SNI" ou Indicação do nome do servidor , que permite a um cliente que o suporta informar o server que hostname quer, antes que o servidor tenha que fornecer o certificado. Note que o IE não suporta isso no Windows XP. No lado do servidor, o Nginx o suporta quando tudo é compilado corretamente. (Nota: esta página também fala sobre as outras opções acima)

    
por 09.11.2010 / 01:17
-1

Sim, o SSL está no nível IP / port. O servidor não tem nada a ver com isso. Você pode usar o mesmo IP, mas uma porta diferente do padrão 443, mas o seu domínio será parecido com

link

    
por 09.11.2010 / 01:02