我有 stunnel 监听端口 80,并充当连接到 Apache 的客户端,监听端口 443。配置如下。我发现,如果我尝试连接到 localhost:80,连接正常,但如果我连接到 127.0.0.1:80
当我检查 Apache 的日志时,它表明 stunnel 两次都使用 localhost 作为 SNI,但 HTTP 请求在一个案例中列出了 localhost,在另一个案例中列出了 127.0.0.1。是否可以告诉 stunnel 使用 HTTP 请求中的任何内容,或者以某种方式配置两个客户端,每个客户端具有不同的 SNI 值?
stunnel.conf:
debug = 7
options = NO_SSLv2
[xmlrpc-httpd]
client = yes
accept = 80
connect = 443
Apache 错误日志:
[error] Hostname localhost provided via SNI and hostname 127.0.0.1 provided via HTTP are different
Apache 访问日志:
"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---
编辑:
Apache 配置
没什么特别的,这只是一个虚拟主机在监听 443
<VirtualHost *:443>