【问题标题】:Delphi XE2 FireMonkey and sslDelphi XE2 FireMonkey 和 ssl
【发布时间】:2023-03-11 02:21:01
【问题描述】:

有人知道怎么用吗 ssl 与 Indy 并让它在 windows 和 osX 下运行? 我已经看到下面的链接,所以 TIdHttp 似乎可以工作 但我需要 ssl 选项。

Firemonkey and TDownloadUrl

谢谢

【问题讨论】:

    标签: delphi ssl https


    【解决方案1】:

    如果您使用的是 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,虽然不是最新版本,所以你不需要添加任何 DLLs/dylibs。

    【讨论】:

    • 理想情况下,您还可以验证证书,但我不知道如何使用 Indy 进行验证。
    • TIdSSLIOHandlerSocketOpenSSL 有一个 OnVerifyPeer 事件。此外,Indy 动态加载 OpenSSL,即使在 OSX 上也是如此,因此它使用 dynlb 版本。
    • @Remy,是否有关于如何验证证书的示例代码? Indy 会自动执行此操作吗?
    • Indy 不验证证书。 OpenSSL 本身就是这样做的。提供了 OnVerifyPeer 事件,因此您可以自己检查证书并做出接受/拒绝决定以覆盖 OpenSSL 的决定。
    猜你喜欢
    • 2011-12-31
    • 2011-11-08
    • 2011-12-08
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2011-11-19
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多