Статус: Активный участник
Группы: Участники
Зарегистрирован: 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?
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Добрый день. Возможно какой-то форк, проверяющий лицензии? Вроде бы было примечание к самой новой версии о необходимости отдельной лицензии на серверный 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)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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
Лог остался таким же.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close