Конференция "Сети" » HTTPS и TIdHTTPServer
 
  • 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 :) В следующей теме.
 
Конференция "Сети" » HTTPS и TIdHTTPServer
Есть новые Нет новых   [118476   +38][b:0][p:0]