-
OtherSide (31.07.13 01:17) [0]Добрый день. Пробую 'прикрутить' SSL к TIdHTTPServer.
Что сделал.
Выставил у TIdHTTPServer в IOHandler TIdServerIOHandlerSSLOpenSSL. В IdServerIOHandlerSSLOpenSSL1 установил путь к CertFile, к KeyFile, Method = sslvSSLv23, Mode = sslmServer. Добавил обработку IdServerIOHandlerSSLOpenSSL1GetPassword и IdHTTPServer1QuerySSLPort, включил прослушку портов 80 и 443, согласно рекомендациям:
stackoverflow.com/questions/8646781/simple-tidhttpserver-example-supporting-ssl
Сгенерировал server.crt и server.key и прописал их в CertFile, и KeyFile.
Взял http://indy.fulgan.com/SSL/openssl-1.0.1e-i386-win32.zip, положил libeay32.dll и ssleay32.dll в папку проекта.
Чего-то все равно не хватает:
Не удается создать безопасное соединение с сервером. На сервере могла возникнуть проблема, или необходим сертификат клиентской аутентификации, который у вас отсутствует.
Код ошибки: ERR_SSL_PROTOCOL_ERROR
Делфи 2010, браузер - хром. Без https работает нормально. -
OtherSide (31.07.13 11:56) [1]Добавил в события TIdServerIOHandlerSSLOpenSSL (OnStatus, OnStatusInfo, OnStatusInfoEx) парочку методов - логгеров. Посмотрю, что там...
-
OtherSide (31.07.13 12:45) [2]Получился вот такой лог:
Мастера, посмотрите, возможно будут какие-то мысли:
QuerySSLPort. Port: 443
OnStatusInfoEx. Where : 16. Ret: 1. Type: Handshake Start. Msg: before/accept initialization
QuerySSLPort. Port: 443
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: before/accept initialization
OnStatusInfoEx. Where : 16. Ret: 1. Type: Handshake Start. Msg: before/accept initialization
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: before/accept initialization
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 read client hello A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 read client hello A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 write server hello A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 write server hello A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 write certificate A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 write certificate A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 write server done A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 write server done A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 flush data
OnStatusInfoEx. Where : 8194. Ret: -1. Type: Accept Error. Msg: SSLv3 read client certificate A
OnStatusInfoEx. Where : 8193. Ret: 1. Type: Accept Loop. Msg: SSLv3 flush data
OnStatusInfoEx. Where : 8194. Ret: -1. Type: Accept Error. Msg: SSLv3 read client certificate A
OnStatusInfoEx. Where : 8194. Ret: -1. Type: Accept Error. Msg: SSLv3 read client certificate A
OnStatusInfoEx. Where : 8194. Ret: -1. Type: Accept Error. Msg: SSLv3 read client certificate A
Я не прописывал RootCertFile, может в этом проблема? Может проблема в том, что мой сертификат нужно в браузер добавить?
Заранее благодарю за ответы. -
OtherSide (02.08.13 19:57) [3]После некоторого секаса поменял Indy на последнюю отсюда:
http://indy.fulgan.com/ZIP/Indy10_5028.zip
Все заработало. Всем спасибо за молчаливое участие :) -
brother © (02.08.13 22:02) [4]долго думал)
-
OtherSide (03.08.13 11:49) [5]>долго думал)
если бы я только этим занимался :) параллельно куча всякого... -
OtherSide (03.08.13 11:51) [6]OtherSide плачет кровавыми слезами :) есть где-нибудь боле-менее стабильная версия Indy? Долго думал среди прочего потому, что сильно не хотел переползать на новую версию. Прошлая была более-менее стабильная, и то править пришлось местах в пяти. Новая откровенно валится в таких местах, что я этого сам не исправлю.
-
OtherSide (03.08.13 11:53) [7]Ночные шоты, конечно, замечательно, но совершенно неюзабельно. Собственно - ничего удивительного.
-
Anatoly Podgoretsky © (03.08.13 15:01) [8]
> есть где-нибудь боле-менее стабильная версия Indy?
Сомнительно и думаю это не лечится
Переходи на другой пакет -
OtherSide (07.08.13 10:16) [9]Зря я уже так на Indy гнал :) Удалось Indy исправить и свой код тоже.
Одна из проблем была, как здесь у DVM:
http://www.delphimaster.net/view/6-1213006787
В общем - https успешно заработал. Пока остаюсь на Indy, и буду решать следующую проблему. Следующая проблема - gzip :) В следующей теме.