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