Eu tenho um servidor que tem dois certificados SSL configurados, um para acesso interno, onde é acessado nas linhas de host.my-local.net
e outro para acesso externo, onde é acessado de forma semelhante a 185.185.185.185
(isso não é o endereço IP real, mas é um endereço IP, pois não há nome de host atribuído a ele). Quando acessado através do endereço externo, a conexão está passando por um balanceador de carga / firewall para o qual não tenho acesso, tudo o que sei é que ele traduz conexões de entrada em uma porta específica para o endereço interno na porta SSL. / p>
O problema é que, quando uma conexão externa entra, recebo o aviso do navegador de que o site está se disfarçando como host.my-local.net
; está apresentando o certificado para host.my-local.net
em vez de 185.185.185.185
. Eu tenho um host virtual configurado para ambos os nomes no meu arquivo de configuração apache2, por isso suponho que, por algum motivo, o servidor está tendo problemas para distinguir entre uma conexão externa e uma conexão de rede local. Eu não tive esse problema com um NAT simples, então não sei por que faria diferença se o balanceador de carga estivesse fazendo a solicitação parecer que vem da LAN em vez de internamente.
Verifiquei que o navegador que estou usando suporta o SNI (Google Chrome) e o Apache 2.4, aparentemente, o suporta desde o início sem exigir a diretiva NameVirtualHost. No entanto, a documentação diz:
In 2.3.11 and later, any time an IP address and port combination is used in
multiple virtual hosts, name-based virtual hosting is automatically enabled
for that address.
No entanto, não é o mesmo endereço IP usado nos dois hosts virtuais diferentes, um é o endereço IP interno (LAN) e um é o endereço IP externo (visível ao mundo), o que se aplica aqui?
Para esclarecer minha configuração, tenho dois hosts virtuais configurados, assim:
<VirtualHost 185.185.185.185:443>
# here i specify the certificate for 185.185.185.185, e.g.
SSLCertificateFile /etc/ssl/private/185.185.185.185.crt
</VirtualHost>
<VirtualHost host.my-local.net:443>
# here i specify the certificate for host.my-local.net, e.g.
SSLCertificateFile /etc/ssl/private/host.my-local.net.crt
</VirtualHost>