Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Veronica99  
#1 Оставлено : 29 сентября 2021 г. 19:48:08(UTC)
Veronica99

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.06.2020(UTC)
Сообщений: 37
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Пытаюсь запустить туннель в системе Sailfish OS. При запуске командой ./stunnel_thread /pathtofolder/stunnel.conf туннель запускается в статусе Ss
Цитата:
1269 ? Ss 0:00 ./stunnel_thread /pathtofolder/stunnel.conf
1298 pts/12 S+ 0:00 grep stunnel

Если делать пустой post запрос через Qt, то прилетает ошибка.
Запрос
Цитата:
void WebViewModel::sendPOST(QString url)
{
QNetworkCookieJar *cookieJar = new QNetworkCookieJar(manager_);
manager_->setCookieJar(cookieJar);

QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/x-www-form-urlencoded"));
QByteArray postData;
postData.append("");

connect(manager_, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinishedSlot(QNetworkReply *)));

manager_->post(request, postData);
}

void WebViewModel::replyFinishedSlot(QNetworkReply *reply)
{
if(reply->error())
{
qDebug() << "Ошибка: ";
qDebug() << reply->errorString();
}
else
{
qDebug() << reply->readAll();
}
reply->deleteLater();
}

Ошибка
Цитата:
WebViewModel::replyFinishedSlot:46 - "Error transferring http:... - server replied: Bad Request"

Так же, пробовала делать POST через curl, на что получила ответ как от get запроса.
Запрос:
Цитата:
curl -X POST 'http...'

Ответ:
Цитата:
400 The plain HTTP request was sent to HTTPS port

Лог туннеля:
Цитата:
2021.09.28 13:27:22 LOG5[1268:4105371664]: stunnel 4.18 on armv7l-unknown-linux-gnueabihf
2021.09.28 13:27:22 LOG5[1268:4105371664]: Threading:PTHREAD Sockets:POLL,IPv6
2021.09.28 13:27:22 LOG6[1268:4105371664]: file ulimit = 1024 (can be changed with 'ulimit -n')
2021.09.28 13:27:22 LOG6[1268:4105371664]: poll() used - no FD_SETSIZE limit for file descriptors
2021.09.28 13:27:22 LOG5[1268:4105371664]: 0 clients allowed
2021.09.28 13:27:22 LOG7[1268:4105371664]: FD 4 in non-blocking mode
2021.09.28 13:27:22 LOG7[1268:4105371664]: FD 5 in non-blocking mode
2021.09.28 13:27:22 LOG7[1268:4105371664]: FD 6 in non-blocking mode
2021.09.28 13:27:22 LOG7[1268:4105371664]: SO_REUSEADDR option set on accept socket
2021.09.28 13:27:22 LOG7[1268:4105371664]: https bound to 127.0.0.1:8080
2021.09.28 13:27:22 LOG7[1269:4105371664]: Created pid file /pathtofolder/stunnel.pid


Сам конфиг
Цитата:
pid = /pathtofolder/stunnel.pid
output = /pathtofolder/stunnel.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
socket = a:SO_REUSEADDR=1
debug = 7
client = yes
delay = yes
[https]
accept = 127.0.0.1:8080
connect = address:443
cert = /pathtofolder/cerfile.cer
verify = 0


Спрашивала по проблеме на stakcoverflow: https://ru.stackoverflow...1#comment2357918_1332949
там мне подсказали, что 0 clients allowed выглядит подозрительно. Об этом в интернете ничего не нашла. Возможно ли, что из-за этого не получается сделать post request по stunnel?
Offline two_oceans  
#2 Оставлено : 30 сентября 2021 г. 11:33:50(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 395 раз в 366 постах
Добрый день.
Цитата:
0 clients allowed
Возможно какой-то форк, проверяющий лицензии? Вроде бы было примечание к самой новой версии о необходимости отдельной лицензии на серверный TLS. Расстраиваться не спешите, сначала попробуйте переключить в режим клиента (ниже).
Цитата:
400 The plain HTTP request was sent to HTTPS port

Предположу, что направление тоннеля, на котором шифрование задано неверно. Сейчас у Вас client=yes находится вверху, попробуйте спустить в секцию (ниже [https] ) без этого, полагаю, stunnel считает, что режим сервера и со стороны connect ( address:443) незашифрованное соединение, а со accept стороны (127.0.0.1:8080) зашифрованное соединение. По смыслу 443 порта должно быть наоборот. Перед [https] желательно пустую строку для удобочитаемости.

Ну и не забывайте "магию" stunnel : типично в hosts прописывается что address это 127.0.0.1, в конфиге в строке connect указывается реальный айпи за именем address, в браузере (или curl) набираете address:8080 Тогда в браузере будут сформированы корректные заголовки http, посланы на stunnel, он их отправит дальше в зашифрованном виде.

В идеале вообще повесить stunnel на 127.0.0.1:80 (если занят, то 127.0.0.2:80 127.0.0.3:80 и т.д.), чтобы в браузере (или curl) порт не набирать. Дальше смотря по сайту - если на сайте есть прямые ссылки или перенаправления на 443 порт, то учтите, что возможно придется поднять stunnel с accept=127.0.0.1:443, connect= 127.0.0.1:8080 и с зарубежным шифрованием.

Отредактировано пользователем 30 сентября 2021 г. 11:40:10(UTC)  | Причина: Не указана

Offline Veronica99  
#3 Оставлено : 30 сентября 2021 г. 16:55:26(UTC)
Veronica99

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.06.2020(UTC)
Сообщений: 37
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
К сожалению, не помогло.
Конфиг:
pid = /pathtofolder/stunnel.pid
output = /pathtofolder/stunnel.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
socket = a:SO_REUSEADDR=1
debug = 7
delay = yes

[https]
client = yes
accept = 127.0.0.1:80
connect = address:443
cert = /pathtofolder/cerfile.cer
verify = 0

Лог остался таким же.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.