Форум для программистов - задавайте интересные вопросы - получайте квалифицированные ответы
И снова сертификаты, или ssl+delphi+https
  • unSignerunSigner June 2011
    Здравствуйте.
    Есть простой код:

    Код:
    var params,responseres:tstringlist;
    begin
    params:=TStringList.Create;
    responseres:=TStringList.Create;

    params.Add('id=20');
    params.Add('date=17.03.2011');
    responseres.Text:=idhttp1.Post('https://адрес сайта,params);

    (здесь код обработки ответа с сервера.)

    params.free;
    responseres.free;

    end;

    на форме 2 компонента: IdSSLIOHandlerSocketOpenSSL и IdHTTP.
    Вся беда в том, что все это проходит через сертификат. Есть купленый сертификат формата p12. В свойствах IdSSLIOHandlerSocketOpenSSL я указываю путь к нему в свойстве CertFile.

    И мне выдает следующую ошибку: error:0906D06C:PEM routines: PEM_read_bio:no start line.

    Вопросов несколько:
    1) Проблема в сертификате (кое-где пишут, что ошибка сообщает о неисправности сертификата)? Хотя он отлично устанавливается в ИЕ и все работает через браузер.
    2) Какой формат сертификата вообще поддерживает делфи? поддерживает ли он pkcs12, или нужно форматировать в pkcs7?
    3) И вообще, какие необходимые условия нужно выполнить, чтоб передать запрос на сервер методом post с помощью Indy?

    Очень актуальный вопрос, и судя по тем ресурсам что я облазил в поисках ответа - не только для меня это актуально. Буду очень благодарен любой помощи.
  • HelloWinHelloWin June 2011
    У меня похожая проблема. Сертификаты сделал по статьям Подгорецкого "Глубины Indy". Но в ответ получаю строку непонятного содержания, видимо зашифрованную.
    Честно говоря не понял про промежуточный сертификат, как его получить.
    Буду благодарен за помощь.
  • unSignerunSigner June 2011
    Итак, продвижение есть.
    Я изменил текст сертификатов, вставив туда больше данных, немного не так как говорится в руководстве, а с заголовками и тд. Зато теперь на сертификаты не ругается.

    И вроде бы все хорошо... к серверу конектится, и даже нигде не ругается.. вот только вместо текста нужной страницы возвращается какаято другая страница, с непонятной кодировкой. Страница довольно маленькая (html-файл в 50 строк где-то). И нереально понять что это за страница.

    при этом при обращении на другие сайты (mail.ru, например) выдает нормальный адекватный код страницы сайта.

    UPD:
    Все, разобрался. походу -

    Проблема была в сертификатах и указания какой куда. Суть в том что один сертификат подписывает промежуточный, а этот промежуточный подписывает уже клиентский. И в РутСерт надо было указать не корневой а промежуточный. Все заработало.
Webparadox - разработка мобильных приложений под iOS и Android.