문제

Google 문서에 연결하려고 노력하고 있습니다 (Marco Cantu의 훌륭한 휴식 예에 따라) 다음 SSL 오류가 발생하고 있습니다.

1) OpenSSL-0.9.8I-I386-WIN32.ZIP에서 SSL DLLS를 사용하면 오류가 발생합니다.

"SSL 라이브러리를로드 할 수 없습니다"

2) indy_openssl096m.zip에서 SSL DLLS를 사용하면 오류가 발생합니다.

"SSL과 연결하는 오류"

3) OpenSSL-0.9.8H-I386-WIN32-Indy-Intrawebedition의 SSL DLL을 사용하면 zip 오류가 발생합니다.

"SSL 라이브러리를로드 할 수 없습니다"

이제 나는 이것을 연구했으며 스택 오버플로 링크를 포함하여 DLL에 대한 죽은 링크가있는 많은 권장 사항이 있습니다. 나는 내가 사용하는 Indy 버전과 호환되는 SSL DLL을 찾아야한다고 생각합니다.

내 질문은, 어떤 SSL DLL이 Delphi 2006 & Indy 10.1.5와 호환되는지 정확히 아는 사람이 있습니까?

도움이 되었습니까?

해결책

나는 Indy 10.2.3으로 업그레이드 한 후에도 같은 문제가 있었고“libeay32.dll”과“ssleay32.dll”파일의 모든 다른 버전을 시도해 보았습니다. : "SSL 라이브러리를로드 할 수 없음"또는 "오류 : 00000006 : lib (0) : func (0) : evp lib"...

tidssliohandlersocketopenssl.ssloptions.ssloptions.method를 sslvsslv23으로 변경하고 모든 것이 작동하기 시작했을 때 매우 기뻤습니다.

조금 더 연구를 통해 "SSL 라이브러리를로드 할 수 없음"에 오류가 발생할 때 언제라도 빨리 이해했습니다. DLL 파일의 잘못된 버전을 사용하고 있었고 언제든지 "ERROR : 00000006 : LIB와 같은"SSL과 연결 오류 "를 얻을 때마다 (0) : func (0) : evp lib "나는 잘못된 ssloptions.method value를 사용하고 있었다.

기타 정보 : Delphi 2006, Indy 10.2.3을 사용하고 있으며 Winxp Pro에서 Runnin을 사용하고 있습니다.

이로 인해 많은 고통이 생겼습니다.이 게시물이 누군가를 어느 정도 절약 할 수 있기를 바랍니다.

다른 팁

당신은 풀건 사이트.

Indy 사본을 업데이트하고 가장 최근의 OpenSSL DLL을 사용하는 것에 대해 생각할 수 있습니다.

FWIW, 나는이 HTTPS 일을하는 데 많은 시간을 보냈기 때문에 성공적인 노력의 결과는 다음과 같습니다.

1- 델파이 7

2- indy9.0.19_d7.exe

3- idssliohandlersocket1.ssloptions.method : = sslvtlsv1; 또는,

idssliohandlersocket1.ssloptions.method : = sslvtlsv23; 또는,

idssliohandlersocket1.ssloptions.method : = sslvtlsv3;

Delphi 7의 Indy10.0.76_d7.exe 및 Indy10.1.5_d7.exe를 시도했는데 HTTPS가 작동하도록 제대로 설치할 수는 없습니다. "Unit Idsyswin32는 다른 버전의 idexception.eidexception으로 컴파일되었습니다." 웹에서 그 문제에 대한 해결책을 검색했는데 하나를 찾을 수 없었습니다. 다른 사람들이 같은 메시지를 받았습니다.

HTTPS를 테스트하는 데 유용한 사이트입니다 https://msp.f-secure.com/web-test/common/test.html

여기 내 출처입니다.

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;

내가 알고있는 한 표준 OpenSSL Binaries와의 최근 버전의 Indy Work를 알고 있습니다.여기에서 다운로드하십시오. 우리는 얼마 전에 SSL 연결과 함께 Indy를 사용하여 Delphi FTP 클라이언트 앱을 제작했으며 현재 OpenSSL DLLS를 배송했을 것입니다.

편집 : 방금 앱 디렉토리를 확인했으며 우리가 사용한 DLL은 OpenSSL 0.9.8.2 (3-AUG-06)입니다. (오래된 앱입니다)

편집 2 : 그리고 나는 방금 더 최근의 0.9.8k dlls를 복사했고 그것들도 잘 작동합니다.

사용중인 인디 버전을 찾으십시오. COPY INDY DLLS IE LIBEAY32.DLL, LIBSSL32.DLL 및 SSLEAY32.dll은 Windows/System 32 폴더에 표시됩니다. "SSL 라이브러리를로드 할 수 없습니다".

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top