【问题标题】:Delphi 5 Indy/ics SSL workaround?Delphi 5 Indy/ics SSL 解决方法?
【发布时间】:2011-12-15 16:09:43
【问题描述】:

我收到如下错误:

“IndyProtocols5 不使用也不支持 IdSSLOpenSSLHeaders..”

当我尝试用我的 Delphi5 安装 Indy 9 或 10 时,注意到这对其他人来说是个问题。这会导致异常:

“无法加载 SSL 库”

使用 IdHttp.IOHandler 时。

我继承的应用程序包含许多不受支持的 D5 组件,不幸的是升级到 D6+ 超出了我的技能范围。我想最初使用 Indy 发布和下载 CSV,但也可能调用 Web 服务。

是否有已知的解决方法,或者我应该开始寻找其他选项,例如 ICS,它可能仍然适用于 D5。

谢谢

【问题讨论】:

  • 从D5升级到D2007不需要任何技能。不过,升级到 D2009 及更高版本需要将您的代码升级到 Unicode。
  • 您使用的是哪个 Indy 版本(当前是 10.5.8)?
  • @mjn 在运行 FullD5.bat 时,由于上述 IndyProtocols5 错误,我无法安装最新的 Indy10 快照 10_4690。使用 Indy9.0.17,我可以正常安装并编译对象,但在运行时得到“无法加载 SSL 库”。

标签: delphi ssl indy delphi-5


【解决方案1】:

所有版本的 Indy SSL 支持都需要 OpenSSL 库 libeay32.dll 和 ssleay32.dll。 (http://www.indyproject.org/Sockets/SSL.EN.aspx)

旧版本的 Indy 需要自定义构建的 SSL 库。年长的应该在这里工作:http://indy.fulgan.com/SSL/Archive/

【讨论】:

  • 我尝试将最新的 .dll 从此存档复制到我的应用程序目录,但没有任何影响。然后我使用了 ZIP/SSL.zip 中标记为 indy_openssl096b 的 .dll,我的错误更改为“使用 SSL 连接时出错”。这篇帖子stackoverflow.com/questions/1874677/… 似乎建议我需要更改 SSLOptions.Method 但我不明白他的解决方案
  • @notidaho,您评论中的帖子意味着,如果您收到 Could not load SSL library,则说明您的 OpenSSL 库版本不兼容,如果您收到的是 Error Connecting with SSL,那么您正在尝试连接到使用错误版本 SSL 协议的主机,这可以通过属性SSLOptions.Method 设置。
  • @TLama 是的,我复制了他的 SSLOptions.Method := sslvSSLv23 解决方案,它似乎停止了错误。谁能告诉我v23的意义?现在我需要根据我的原始帖子实际 d/l csv:stackoverflow.com/questions/7895790/…thanks
  • @notidaho,这取决于您要连接的目标主机支持的 ​​SSL 的 version。你可以检查一下,例如this 方式。通过将SSLOptions.Method 设置为sslvSSLv23,您是在告诉 Indy 协商使用另一端的 SSL 版本(如果您将其设置为其他东西,则另一端必须支持所选的 SSL 协议)。
  • 这非常有用,谢谢@TLama 这个版本不太可能改变,但是否可以通过 Indy 获取版本号?该网站说 V3,但这如何转化为上面的 V23?
【解决方案2】:

我从INDY 10.1.5 - Which SSL dlls work with Delphi 2006? 复制了他的 SSLOptions.Method := sslvSSLv23 解决方案,它停止了错误。这是最新的 Indy9 版本。

我不知道 sslvSSLv23 的意义,也不知道为什么 Indy10 没有安装,但我会看看我如何继续使用 Indy9。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2014-09-22
    • 2012-05-04
    • 2021-08-13
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多