Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2013, 14:55   #1
foxm
 
Регистрация: 17.01.2011
Сообщений: 3
По умолчанию Ошибка загрузки корневого сертификата

Есть такой код, который посылает запрос на удаленный сервер и получает от него ответ
Код:
 http := TIdHTTP.Create(nil); //создание экземпляра протокола http
 ssl := TIdSSLIOHandlerSocketOpenSSl.Create(http); //создание ssl на основе http
 SSL.SSLOptions.RootCertFile :='1.pem'; //корневой сертификат
 SSL.SSLOptions.CertFile := '2.crt'; //сертификат выданный нам центром сертификации//наш публичный ключ
 SSL.SSLOptions.KeyFile := '3.key'; //наш приватный ключ
 http.IOHandler := ssl; 
 HTTP.ProxyParams.ProxyServer:='...';
 HTTP.ProxyParams.ProxyPort:=...;
 try
 try
 params.Text := n;
 responseres.Text := http.Post('https://...", params);

 except
 on E : Exception do
 begin
 ShowMessage('Ошибка! Заголовок ответа: ' + http.Response.RawHeaders.CommaText+'!'+e.Message);
 end;
 end;
 finally
 SSL.Free;
 HTTP.Free;
 end;
При первом запуске программы код отрабатывает правильно, но при повторном обращении к серверу выдает ошибку

could not load root certificate error:0B084002:x509 certificate routines:X509_load_cert_crl_file:sy stem lib

Если программу перезапустить, то сначала отрабатывает снова нормально, а потом опять ошибка...

Хотелось бы понять, в чем причина ошибки и как ее устранить.

Delphi XE2 16.0.4429.46931

Последний раз редактировалось Stilet; 26.08.2013 в 15:23.
foxm вне форума Ответить с цитированием
Старый 26.08.2013, 15:47   #2
asmprog
Пользователь
 
Регистрация: 10.08.2013
Сообщений: 67
По умолчанию

программа директорию не изменяет? если нет - можно попробовать TIdSSLIOHandlerSocketOpenSSl сделать глобальным, т.е. создавать один раз, потом ассигновать его ко всем http.IOHandler
asmprog вне форума Ответить с цитированием
Старый 26.08.2013, 16:51   #3
foxm
 
Регистрация: 17.01.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от asmprog Посмотреть сообщение
программа директорию не изменяет? если нет - можно попробовать TIdSSLIOHandlerSocketOpenSSl сделать глобальным, т.е. создавать один раз, потом ассигновать его ко всем http.IOHandler
А если программа обращается к разным серверам с разными ключами, это будет работать?
foxm вне форума Ответить с цитированием
Старый 26.08.2013, 17:48   #4
asmprog
Пользователь
 
Регистрация: 10.08.2013
Сообщений: 67
По умолчанию

вопрос, видимо, риторический(тогда прошитые константами сертификаты с ключами, видимо, для примера?). вам ведь четко сказали что именно не так:
Цитата:
could not load root certificate
т.е. либо сертификат не находит(программа изменяет текущую директорию?) - можно попробовать полные пути к сертификатам и ключам прописывать, либо что-то меняет внутреннее состояние объекта между двумя отработками. вообще, если имеется необходимость с разными серверами и ключами работать, то есть смысл менеджер накодить, который по обращению будет нужный TIdSSLIOHandlerSocketOpenSSl предоставлять.

P.S. я в таких случаях использую curl, т.к. к Indy скептически отношусь еще со времен Delphi 7.
asmprog вне форума Ответить с цитированием
Старый 29.08.2013, 14:59   #5
foxm
 
Регистрация: 17.01.2011
Сообщений: 3
По умолчанию

Увы, глобальный TIdSSLIOHandlerSocketOpenSSl не помог...
При этом здесь, у себя повторить ошибку я не могу. На двух компьютерах пробую, все проводится нормально. А вот на точках ошибка....
foxm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows 7 ошибка на этапе загрузки delphin100 Windows 1 18.12.2010 12:48
Ошибка загрузки файла на FTP!!! $T@LKER Работа с сетью в Delphi 7 16.05.2010 18:33
ошибка загрузки страницы Vitek-pm Общие вопросы C/C++ 0 01.03.2009 01:11
Ошибка при загрузки изображения Volkogriz Общие вопросы Delphi 13 13.01.2009 01:51