Parece que você pode forçar isso com o item de configuração do cliente:
sni = server_name
link - Pesquise por SNI
Eu tenho stunnel ouvindo na porta 80 e agindo como um cliente se conectando ao Apache ouvindo na porta 443. A configuração está abaixo. O que eu estou achando é que, se eu tentar se conectar ao localhost: 80 a conexão é boa, mas se eu me conectar a 127.0.0.1:80
Quando eu verifico os logs do Apache, isso indica que stunnel está usando localhost como o SNI nas duas vezes, mas a solicitação HTTP lista localhost em um caso e 127.0.0.1 em outro. É possível dizer ao stunnel para usar o que quer que esteja no pedido HTTP ou para configurar de alguma forma dois clientes, cada um com valores SNI diferentes?
stunnel.conf:
debug = 7
options = NO_SSLv2
[xmlrpc-httpd]
client = yes
accept = 80
connect = 443
Apache error.log:
[error] Hostname localhost provided via SNI and hostname 127.0.0.1 provided via HTTP are different
Apache access.log:
"GET / HTTP/1.1" 200 2138 "-" "Wget/1.13.4 (linux-gnu)"
"GET / HTTP/1.1" 400 743 "-" "Wget/1.13.4 (linux-gnu)"
wget:
$wget -d localhost
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: localhost
Connection: Keep-Alive
---request end---
$wget -d 127.0.0.1
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: 127.0.0.1
Connection: Keep-Alive
---request end---
editar:
Configuração do Apache
Nada fora do comum, é apenas um host virtual ouvindo 443
<VirtualHost *:443>
Parece que você pode forçar isso com o item de configuração do cliente:
sni = server_name
link - Pesquise por SNI