web-dev-qa-db-ja.com

stunnelクライアントがApacheと通信するときに不適切なSNIを使用する

ポート80でリスニングし、ポート443でリスニングしているApacheに接続するクライアントとして機能するstunnelがあります。構成は次のとおりです。私が見つけたのは、localhost:80に接続しようとすると接続は正常ですが、127.0.0.1:80に接続すると

Apacheのログを確認すると、stunnelが両方の時間でローカルホストをSNIとして使用していることが示されていますが、HTTPリクエストでは、あるケースではlocalhostが、別のケースでは127.0.0.1がリストされています。 stunnelにHTTPリクエストにあるものを使用するように、またはどういうわけかそれぞれ異なるSNI値で2つのクライアントを構成するように指示することは可能ですか?

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---

編集:

Apache Config

異常なことは何もありません、それは443を聞いている単なる仮想ホストです

<VirtualHost *:443>
1
Huckle

クライアント設定項目でこれを強制できるようです:

sni = server_name

http://www.stunnel.org/static/stunnel.html -SNIを検索します

1
Paul Doom