2011-10-03 169 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会自动执行此操作吗? –