Назад | Перейти на главную страницу

Клиент stunnel использует неправильный SNI при разговоре с Apache

У меня 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>

Похоже, вы можете заставить это сделать это с помощью элемента конфигурации клиента:

sni = имя_сервера

http://www.stunnel.org/static/stunnel.html - Поиск по SNI