Показать сообщение отдельно
  #1  
Старый 26.08.2013, 15:00
foxm foxm вне форума
Прохожий
 
Регистрация: 26.08.2013
Сообщения: 2
Версия Delphi: Delhi
Репутация: 10
По умолчанию Ошибка загрузки корневого сертификата

Есть такой код, который посылает запрос на удаленный сервер и получает от него ответ
Код:
 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:system lib

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

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

Delphi XE2 16.0.4429.46931
Ответить с цитированием