IntraWeb的SSL问题 - Delphi 2007

时间:2008-10-17 17:35:17

标签: delphi ssl delphi-2007 intraweb

我一直在尝试使用SSL来处理我的IW程序,但是我一直在反对'无法加载SSL库'。我已经按照我能找到的关于这个主题的每一条建议,但仍然没有快乐。我已在本地目录和system32中尝试过建议的DLL。

有没有人对我应该使用的OpenSSL DLL有明确的答案?它们的构建是什么?还是其他任何想法?

Indy:昨天更新到最近的快照 IntraWeb:库存D2007安装

这在Vista计算机上运行,​​如果这有任何区别的话。

TIA,

特雷弗

4 个答案:

答案 0 :(得分:3)

<强>解决:

看起来问题是我的机器上浮动的问题。

以下是我采取的步骤,以防其他人在使用D2007和预安装的库运行独立服务器时遇到困难:

  1. 从你的机器上移除Indy的所有痕迹 - Indy网站上有一个howto;
  2. 从subversion存储库下载Indy 10主干
  3. 按照说明安装Indy;
  4. 从atozed下载最新的IW9 - 您需要一把钥匙;
  5. 安装它 - 让它破坏你当前的安装;
  6. 现在,对于OpenSSL DLL:

    1. 从这里获取它们:http://www.slproweb.com/download/Win32OpenSSL_Light-0_9_8i.exe
      • 这些对我来说效果很好;
    2. 确保您的防火墙允许端口443通过(或您选择的任何地方);
    3. 此时,我能够编译并运行演示和我的应用程序。

      感谢您的帮助。

      特雷弗

答案 1 :(得分:2)

你需要OpenSSL dll(0.9.8i为我工作,但我没有使用Vista),你可以下载here(因为我认为你的建议,Indy dll不起作用与IW9,这是D2007捆绑的版本。)

安装完成后,将ssleay32.dll和libeay32.dll从system32复制到您的应用程序目录。

如果仍然无效:

  • 是你的servercontroller的ssl端口设置为443?
  • 你的证书pw是否与你的servercontroller的ssl cert pw相匹配?
  • 是servercontroller.sslversion设置为sslv23?
  • 您是否尝试过编译/运行针对SSL的AtoZed演示应用程序(standalonessl)?

希望这有帮助。

编辑:一旦你开始工作,你就会想要将sslversion改成sslv3,并让用户关闭v2。

答案 2 :(得分:1)

今天在Embarcadero新闻组的intraweb论坛上对同一问题的回应中,Chad Z.“Kudzu”Hower发布了this link(没有任何解释 - 只是链接)。

该页面为特殊版本的SSL库提供了this link

希望这有帮助。

答案 3 :(得分:0)

我是构建上述IntraWeb SSL dll特殊版本的人。为了完成上述答案,让我解释一下为什么需要特殊构建:

以前的Indy和IntraWeb版本使用了稍微修改过的OpenSSL版本。修改包括与例如相关的若干功能。当时Delphi或Indy没有的时区计算。

因此,当有人使用未经修改的OpenSSL dll(不是Indy OpenSSL dll)以及较旧的Indy或IntraWeb版本时,由于缺少导出,他将收到“无法加载SSL库”错误。

由于我们在Delphi 2009中使用的Indy版本不再需要这些更改。这就是为什么当前的Indy版本 - 来自SVN,甚至包括Delphi 2007 - 与IntraWeb一起使用来自slproweb的dll(不包括这些修改)。

但请注意,slproweb dlls 确实需要MS VC ++运行时dll

为了规避这个问题,我经常为Indy创建一套自己的dll: ftp://ftp.fulgan.com/SSL/

截至今天,您应该可以使用此版本: ftp://ftp.fulgan.com/SSL/openssl-1.0.0d-i386-win32-rev2.zip

我的dll集不需要安装MC VC运行时。

所以可以肯定地说任何比Delphi 2009更新的Indy版本和/或相应的SVN版本都可以安全地与slproweb(带VC依赖)或我们自己的(来自fulgan mirror)dll一起使用。