Domanda

Sto cercando di connettersi a Google documenti (seguenti eccellente esempio REST di Marco Cantù), ma sto ottenendo i seguenti errori SSL:

1) Se io uso le DLL SSL da openssl-0.9.8i-i386-win32.zip ottengo l'errore:

"Impossibile caricare la libreria SSL"

2) Se io uso le DLL SSL da indy_OpenSSL096m.zip ottengo l'errore:

"Errore di connessione con SSL"

3) Se io uso le DLL SSL da openssl-0.9.8h-i386-win32-Indy-IntraWebEdition.zip ottengo l'errore:

"Impossibile caricare SSl Library"

Ora ho studiato questo e ci sono un sacco di raccomandazioni con link morti a DLL circa, compresi i collegamenti in caso di overflow dello stack. Ho il sospetto che ho bisogno di trovare le DLL SSL che sono compatibili con la versione di INDY sto usando.

La mia domanda è, qualcuno sa esattamente quali DLL SSL sono compatibili con Delphi 2006 e INDY 10.1.5?

È stato utile?

Soluzione

Ho avuto lo stesso problema anche dopo che l'aggiornamento a 10.2.3 INDY e ho provato ogni diversa versione del file “ssleay32.dll” “libeay32.dll” e sono riuscito a trovare ... come Matt Ho sempre avuto una delle i due errori: "Impossibile caricare la libreria SSL" o "errore di connessione con SSL" con qualcosa di simile "errore: 00000006: lib (0): func (0): EVP lib" ...

Sono stato molto felice quando cambio la TidSSLioHandlerSocketOpenSSL.SSLOptions.Method a sslvSSLv23 e tutto iniziato a lavorare.

Un po 'più di ricerca e ho subito capito ogni volta ho ottenuto l'errore "Impossibile caricare la libreria SSL" Stavo usando la versione sbagliata dei file DLL e in qualsiasi momento ho avuto la "Errore di connessione con SSL" con qualcosa di simile "errore: 00000006: lib (0): func (0):. EVP lib" stavo usando il valore SSLOptions.Method sbagliato

L'altra Info: sto usando Delphi 2006, INDY 10.2.3 e sto runnin su WinXP Pro

Questo mi ha causato tanto dolore, spero che questo post verrà salvare qualcuno un po 'di tempo.

Altri suggerimenti

Si potrebbe ricorrere ad alcuni tentativi ed errori che utilizzano download da Fulgan sito .

Si potrebbe desiderare di pensare di aggiornare la propria copia di Indy e utilizzando le più recenti DLL OpenSSL.

FWIW, dato che ho speso un sacco di tempo per ottenere questa cosa https al lavoro, ecco i risultati dei miei sforzi di successo.

1- Delphi 7

2- indy9.0.19_d7.exe

3- IdSSLIOHandlerSocket1.SSLOptions.Method: = sslvTLSv1; o,

IdSSLIOHandlerSocket1.SSLOptions.Method: = sslvTLSv23; o,

IdSSLIOHandlerSocket1.SSLOptions.Method: = sslvTLSv3;

ho provato indy10.0.76_d7.exe e indy10.1.5_d7.exe sotto Delphi 7 e non riesco a farli installare correttamente, per non parlare di ottenere HTTPS al lavoro. Ottengo il messaggio famigerato "Unità IdSysWin32 è stato compilato con una versione diversa di IdException.EIdException." Ho cercato una soluzione a questo problema sul web e non riuscivo a trovare uno -. I carichi di altri avevano lo stesso messaggio

Un sito utile per testare https è https: //msp.f -secure.com/web-test/common/test.html

Qui è la mia fonte:

procedure TForm1.ButtonHTTPSClick(Sender: TObject);
var
  IdHTTP1: TIdHTTP;
  ParamStringList: TStringList;
  s1: String;
  MemoryStream1: TMemoryStream;
  IdSSLIOHandlerSocket1:  TIdSSLIOHandlerSocket;
begin //  ssl works fine must have Indy version indy9.0.19_d7.exe and must use option  sslvSSLv23

  Screen.Cursor := crHourGlass;
  IdHTTP1 := TIdHTTP.Create(nil);
  IdSSLIOHandlerSocket1 := TIdSSLIOHandlerSocket.Create(nil); 
  IdHTTP1.IOHandler := IdSSLIOHandlerSocket1;

//  IdSSLIOHandlerSocket1.SSLOptions.Method := sslvTLSv1; // sslvSSLv1 works fine
    IdSSLIOHandlerSocket1.SSLOptions.Method := sslvSSLv3; // sslvSSLv3 works fine
//  IdSSLIOHandlerSocket1.SSLOptions.Method := sslvSSLv23; // sslvSSLv23 works fine
//  IdSSLIOHandlerSocket1.SSLOptions.Method := sslvSSLv2;   sslvSSLv2 does not work
    IdSSLIOHandlerSocket1.SSLOptions.Mode := sslmUnassigned;
    IdSSLIOHandlerSocket1.SSLOptions.VerifyMode := [];
  IdSSLIOHandlerSocket1.SSLOptions.VerifyDepth := 0;

  ParamStringList := TStringList.Create;
  MemoryStream1 := TMemoryStream.Create;
  s1 := IdHTTP1.Post('https://msp.f-secure.com/web-test/common/test.html', ParamStringList);
  MemoryStream1.Write(s1[1], Length(s1));
  MemoryStream1.Position := 0;
  MemoryStream1.SaveToFile('c:\temp\MemoryStream1.txt');
  Memo1.Lines.Clear;
  Memo1.Lines.LoadFromFile('c:\temp\MemoryStream1.txt');
  MemoryStream1.Free;
  ParamStringList.Free;
  IdSSLIOHandlerSocket1.Free;
  IdHTTP1.Free;
  Screen.Cursor := crDefault;
end;

Per quanto ne so le versioni più recenti di lavoro Indy con i binari OpenSSL standard. Scarica da qui . Abbiamo prodotto un client FTP Delphi app qualche tempo fa utilizzando Indy con connessioni SSL e sono sicuro che abbiamo appena spedito le attuali DLL OpenSSL.

Edit: Ho appena controllato la directory app e le DLL che abbiamo usato sono OpenSSL 0.9.8.2 (3-ago-06). (E 'una vecchia app)

Modifica 2: E ho appena copiato il 0.9.8k più recente DLL più e funzionano bene anche

.

Trova la versione Indy si è using.Copy l'Indy DLL cioè libeay32.dll, libssl32.dll e ssleay32.dll in Windows / System 32 Folder.It risolverà l'errore "Impossibile caricare la libreria SSL"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top