Russian Qt Forum

Qt => Работа с сетью => Тема начата: catprog от Декабрь 21, 2009, 15:08



Название: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 21, 2009, 15:08
Стоит QtCreator Qt 4.5.1
Вот такой код:
Код:
if (!QSslSocket::supportsSsl())
    {
        QMessageBox::information(0, "Secure Socket Client","This system does not support OpenSSL.");
    }
выдает сообщение и соответственно https в QHttp не работает.
Подскажите пожалуйста как подключить.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 15:11
пересобрать с поддержкой SSL.
в доке написано.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 21, 2009, 15:52
Киньте пожалуйста ссылку на эту страницу. А то я толком еще не собирал, скачал отсюда  http://qt.nokia.com/downloads/ поставил одним разом и все.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 15:59
http://qt.nokia.com/doc/4.6/requirements.html


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 21, 2009, 16:17
Буду читать, но на первый взгляд там ничего не понятно :(
Скачал openssl-0.9.8l.tar.gz но что с ним делать ???


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 17:37
то же, что и со всеми исходниками.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Vass от Декабрь 21, 2009, 17:42
ОС Windows как я понимаю, тогда качайте обычный инсталлятор
http://www.slproweb.com/download/Win32OpenSSL-0_9_8l.exe
Я ставил для MSVS,
нужно содержимое папки include перенести в include студии,
содержимое lib соответственно,
кинуть две dll из папки с openssl  в папку system32
Проверить и настроить PATH, чтобы все вышеперечисленное было доступно.
после чего кофигурите Qt с ключем -openssl-linked
и компилируйте, должно работать
в проекте если проверка сертификатов не важна не забудьте пробросить сигнал
sslErrors() на сокет ignoreSslErrors()  у используемого сокета.

----

Если ОС linux то вообще то все и так работать должно. во-всяком случае у меня работает.
ну естественно не забываем про ignoreSslError()


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: sendevent от Декабрь 21, 2009, 17:47
(пере-)собираю так:
Код:
nmake confclean
nmake distclean
configure ... -openssl-linked -I /path/2/openssl/include -L /path/2/openssl/lib
nmake
nmake install
всмысле, без возни с окружением и директориями студии.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Vass от Декабрь 21, 2009, 17:56
sendevent а дллки (ну которые ssleay32.dll, libssl32.dll, libeay32.dll)? они же вроде как обязательно нужны, а  то потом проект ругаться на их отсутствие будет, или их сразу в PATH?


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 21, 2009, 18:45
Спасибо, у меня тоже винда, но у меня QtCreator a не студия. Сейчас попробывал по аналогии как расписали сделать, запустил и оно чтото делает. Сейчас распишу что я сделал...


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 21, 2009, 18:54
Из папки C:\OpenSSL\lib
скопировал файлы:
libeay32.lib
ssleay32.lib
в папку
C:\Qt\2009.02\qt\lib

Из папки C:\OpenSSL\lib\MinGW
скопировал все файлы в папку C:\Qt\2009.02\mingw\lib

Из папки C:\OpenSSL\include
скопировал папку openssl со всем содержимым в папку C:\Qt\2009.02\qt\include

Из папки C:\OpenSSL\bin
скопировал файлы:
libeay32.dll
ssleay32.dll
в папку C:\WINDOWS\system32

Запустил "Qt Command Prompt" (C:\WINDOWS\system32\cmd.exe /K C:\Qt\2009.02\bin\qtenv.bat)
и вписал команду: configure -openssl-linked

Вот пока я это все расписывал  оно закончило чтото делать, пишет что сконфигурировано для сборки.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 19:06
странно ???
я только что собрал. но у меня расширения *.а
вот: http://rghost.ru/733440


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 19:07
и длл-ок нет)


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Sahab от Декабрь 21, 2009, 19:17
))


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Пантер от Декабрь 21, 2009, 19:17
Закиньте кто-нибудь решение в ВИКИ, пожалуйста.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 19:18
да что там закидывать) с пол пинка собралось.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Vass от Декабрь 21, 2009, 19:18
niXman, Qt собрать можно и без DLL, а вот проект использующий SSL без них не запустится, будет орать, что не находит DLL


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Пантер от Декабрь 21, 2009, 19:19
Вот чтобы больше вопросов не было. ;) Да и ВИКИ чтобы не была такой пустой.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: niXman от Декабрь 21, 2009, 19:42
niXman, Qt собрать можно и без DLL, а вот проект использующий SSL без них не запустится, будет орать, что не находит DLL
а чтоб такого не было, я собираю OpenSSL в статике.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Vass от Декабрь 21, 2009, 19:47
http://prog.org.ru/wiki/index.php?title=Сборка_Qt_с_поддержкой_Open_SSL_в_Windows

Ну примерно как-то так, объединил наиболее простые варианты. А так авторов, прошу если что откорректировать.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 21, 2009, 20:02
А я потом написал еще mingw32-make, до сих пор билдится, еще не знаю заработает ли у меня SSL...


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Vass от Декабрь 21, 2009, 20:21
Так configure же выводит что у него подключено, красивым таким списком.


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: Sahab от Декабрь 22, 2009, 10:38
"Общие шаги":
...В директории программы(?) находятся три dll-файла: ssleay32.dll, libssl32.dll, libeay32.dll. Их необходимо поместить в sytem32, либо добавить путь к ним в переменную окружения PATH, Qt без них, Вы, конечно, соберете, но проект работать не будет...
зочем тогда это все если в п 2,3 только статика?
"Для компилятора MinGW"
http://www.prog.org.ru/index.php?topic=6281.msg28617#msg28617

ни MSVC, ни MinGW не схавали по дефолту либы опенssl(скаченые бинарники) повываливали еррор, пришлось править ручками, причем OPENSSL_LIBS не помогло
для mingw - http://www.qtcentre.org/forum/f-installation-and-deployment-5/t-qt-44-on-windows-with-ssl-support-and-mingw-13983.html
хотя это наверно тоже через Ж


Название: Re: Как добавить поддержку OpenSSL ?
Отправлено: catprog от Декабрь 22, 2009, 13:02
А ведь работает))) И не надо делать mingw32-make, это я дома процес повторил и проверил, работает)))