URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8203
[ Назад ]

Исходное сообщение
"Stunnel конфигурация"

Отправлено Григорий , 04-Мрт-20 20:29 
Добрый день,

Столкнулся со странной проблемой. Поднял stunnel на внешний сайт. Пробую кинуть на него POST напрямую, всё отрабатывает корректно.:
curl https://site.com/site  -X POST -d '{data}' --cacert /etc/stunnel/certs/root-ca.crt --key /etc/stunnel/client.key --cert /etc/stunnel/certs/client.crt


Пробую через stunnel, получаю ошибку:
curl http://127.0.0.1:1919/site  -X POST -d '{data}'

Причём если я правильно понимаю, то это ошибка уровня приложения, а не уровня SSL:
<html> <head> <title>Invalid Cert</title> </head>CN=heresCN,OU=heresOU,O=HeresO,C=US is not valid on this url</html>


Собственно, в чём вопрос. В чём может быть разница между SSL соединением которое иницирует cURL и соединением, которое делает stunnel? Они же должны идентично отрабатывать? В какую сторону копать?


####################################
debug = 7
output = /var/log/stunnel/stunnel.log
setuid = nobody
setgid = nobody
pid = /tmp/stunnel.pid

[tun]
client = yes
accept = 1919
connect = site.com:443

#options = NO_SSLv2
#options = NO_SSLv3
sslVersion = TLSv1.2
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256

CAfile = /etc/stunnel/certs/root-ca.crt
cert = /etc/stunnel/certs/client.crt
key = /etc/stunnel/client.key
#########################


Содержание

Сообщения в этом обсуждении
"Stunnel конфигурация"
Отправлено Licha Morada , 05-Мрт-20 03:16 
> Причём если я правильно понимаю, то это ошибка уровня приложения, а не
> уровня SSL:
> <html> <head> <title>Invalid Cert</title> </head>CN=heresCN,OU=heresOU,O=HeresO,C=US
> is not valid on this url</html>

Если это приехало в качестве контента для cURL, значит клиент и сервер договорились о HTTP, значит у них получилось SSL. Код ответа, случайно, не 403? По смыслу содержимого, похоже на творчески выраженную ошибку аутентикации по сертификату.

> Собственно, в чём вопрос. В чём может быть разница между SSL соединением
> которое иницирует cURL и соединением, которое делает stunnel? Они же должны
> идентично отрабатывать?

Либо cURL втихаря какие-то свои хедеры прицепляет когда HTTPS, либо сервер... уж не знаю что он может насамодельничать.

> В какую сторону копать?

Надо бы посмотреть в лог веб сервера и в лог приложения.
Ещё может помочь сделать дамп переменных окружения на сервере, либо посмотреть на хедеры, как запроса так и ответа (--verbose в помощь), в случае HTTPS напрямую и в случае stunnel.

Это обшие соображения, сам я на такое поведение не напарывался. Мы, обычно, вместо stunnel сразу обратный прокси на Nginx пихаем. Оверкилл, но ни разу не было чтоб критично по ресурсам оказывалось. С другой стороны, "мы" это инфраструктура, аутентикация на уровне приложения, даже по сертификату, проходит мимо.


"Stunnel конфигурация"
Отправлено Serge , 06-Мрт-20 04:26 
> Они же должны идентично отрабатывать? В какую сторону копать?

в сторону http header'a "Host"


"Stunnel конфигурация"
Отправлено pda0 , 20-Апр-21 19:54 
Сдаётся, что вы заголовок Host не задали. А может и sni в конфиге stunnel (но это не точно) и виртуальный сервер не может понять на какой сайт вы ломитесь.