2011-10-03 105 views

回答

0

如果您使用的是與XE2附帶的Indy組件,那麼您可以在從OpenSSL的Windows的SSL二進制下降。對於Windows,把這些在同一文件夾作爲您的EXE:

  • 的libeay32.dll
  • ssleay32.dll

你會發現一個鏈接到最新的Windows二進制文件的位置:

http://www.openssl.org/related/binaries.html

如果您只是使用DLL,則不需要Visual C++ 2088可重新分發,因此如果您得到一個,請忽略安裝警告。

然後,您將TIdSSLIOHandleSocketOpenSSL組件添加到您的表單中。將TIdHTTP組件的IOHnandler屬性設置爲新的TIdSSLIOHandlerSocketOpenSSL組件。

設置TIdSSLIOHandlerSocketOpenSSL組件以下SSLOptions

Mode := sslmClient; 

這就是你需要的。現在,當您調用「https://」而不是「http://」URL時,它將自動加載庫並使用SSL組件。

對於OS X,它帶有OpenSSL,但不是最新版本,因此您不需要添加任何DLL/dylib。

+0

理想情況下,你也可以驗證證書,但我不知道如何用Indy做到這一點。 –

+0

TIdSSLIOHandlerSocketOpenSSL有一個OnVerifyPeer事件。此外,即使在OSX上,Indy也會動態加載OpenSSL,因此它使用dynlb版本。 –

+0

@Remy,有沒有關於如何驗證證書的示例代碼? Indy會自動執行此操作嗎? –