Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Could not load SSL library (OpenSSL+Indy) (https://www.clubdelphi.com/foros/showthread.php?t=92573)

Ivanzinho 29-11-2017 21:11:20

Could not load SSL library (OpenSSL+Indy)
 
Hola de nuevo a todos, después de un tiempo sin visitar el club, el destino me trajo a este hilo.

Resulta que tengo unha aplicación que hace llamadas a una api Rest utilizando indy 10.5.5 con delphi 2010. Todo funcionaba perfectamente hasta que se instaló un certificado SSL en el servidor y la llamada pasó de ser http://... a https://...

Conecté un TIdSSLIOHandlerSocketOpenSSL a mi TidHTTP con la opción SSLOptions.Method = sslvSSLv3 y probé con diferentes versiones de OpenSSL descargadas desde aquí. Probe a poner los DLL tanto en la carpeta de mi aplicación y en las carpetas system32 y sysWOW64, pero siempre obtengo el error "Could not load SSL library".

¿Alguien sabe la versión de OpenSSL que debo usar con indy 10.5.5 o estoy haciendo alguna cosa mal?

Un saludo y muchas gracias por vuestra atención.

fredo 29-11-2017 23:47:18

el problema es al cargar el SSL de lado del cliente o del servidor? si es del cliente no veo donde pongas tu certificado...

Ivanzinho 30-11-2017 20:11:33

Después de probar y probar acabé encontrando los DLL compatibles con Indy 10.5.5 para aplicaciones win32. Son éstos que se pueden descargar de aquí.

Muchas gracias por vuestra ayuda.

PEIIB 20-05-2019 14:47:35

Hola,
Tengo el mismo problema que Ivanzinho, pero en mi caso la solución no ha sido efectiva.
El caso que intento hacer una llamada post a una web API (es mi primera vez en esto).
Siguiendo un monton de hilos, he llegado a este código:
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var S: TStringList;
   M: TStream;
   IdSSLIOHandlerSocket: TIdSSLIOHandlerSocket;
   HTTP1: TidHTTP;
begin
 S := TStringList.Create;
 M := TMemoryStream.Create;
 IdSSLIOHandlerSocket := TIdSSLIOHandlerSocket.Create(self);
 HTTP1:= TidHTTP.Create(self);
 try
   S.Values['Username'] := 'aaa';
   S.Values['Password'] := 'bbb';
   S.Values['company_id'] := 'ccc';

   HTTP1.IOHandler := IdSSLIOHandlerSocket;
   HTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
   HTTP1.Post('https://api.sesametime.com/api/getChecksDB', S, M);
   Memo1.Lines.Add(Format('Response Code: %d', [HTTP1.ResponseCode]));
   Memo1.Lines.Add(Format('Response Text: %s', [HTTP1.ResponseText]));

   M.Position := 0;
   S.LoadFromStream(M);
   Memo1.Lines.AddStrings(S);
 finally
   S.Free;
   M.Free;
 end;

end;

El caso es que al ejecutar la línea HTTP1.Post, aparece el error 'Could not load SSL library'
Buscando la solucion a este error, he llegado a este hilo, y pensaba que ya había hallado la solucion, pero no. Despues de descargar los DLL indicados por IvanZino, sigue sin funcionar la cosa. Supongo que la version de las librerias descargadas, no coinciden con el Indy que tengo instalado. Así que me surgen varias preguntas:
1) Como puedo saber la version Indy que tengo instalada?
2) Como puedo encontrar las librerías correspondientes?
3) Teneis alguna sugerencia que se aparte de esas preguntas?

Gracias de antemano

PEIIB 20-05-2019 17:54:13

Hola!

Ya he encontrado la solunción en este otro hilo

Gracias por el interés


La franja horaria es GMT +2. Ahora son las 07:09:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi