2008-10-17 129 views
4

我一直在嘗試SSL在我的IW程序上工作了一小會兒,並且我一直在運行「無法加載SSL庫」。我遵循了我在這個主題上可以找到的每一條建議,但仍然沒有喜悅。我已經在本地目錄和system32中嘗試了建議的DLL。IntraWeb-Delphi 2007的SSL問題

有沒有人有關於我應該使用的OpenSSL DLL的確定答案?他們構建了什麼?或者其他任何想法?

印:更新到最新的快照昨天 的IntraWeb:股票D2007安裝

這是一個Vista的機器上運行,如果有什麼差別。

TIA,

特雷弗

回答

2

你需要OpenSSL的dll文件(0.9.8i爲我工作,但我不使用Vista),您可以下載here(因爲我認爲你是在暗示,Indy dll不支持與IW9捆綁在一起的IW9)。

安裝完成後,將ssleay32.dll和libeay32.dll從system32複製到您的應用程序目錄。

如果仍然不工作:

  • 是您的servercontroller的SSL端口設置爲443?
  • 您的證書pw是否與您的servercontroller的ssl證書pw匹配?
  • 是servercontroller.sslversion設置爲sslv23嗎?
  • 您是否嘗試編譯/運行SSL(standalonessl)的AtoZed演示應用程序?

希望這會有所幫助。

編輯:一旦你得到這個工作,你會想改變sslversion到sslv3,並讓用戶關閉V2。

1

在今天對Embarcadero新聞組內intraweb論壇的同一問題的答覆中,Chad Z.「Kudzu」Hower發佈了this link(沒有任何解釋 - 只是鏈接)。

該頁面提供this link到特殊版本的SSL庫。

希望這會有所幫助。

+0

它的確如此 - 非常感謝。今天下午我會玩這個。 – 2008-10-23 18:06:17

3

解決:

它看起來像這個問題是一個BPL浮動約我的機器上。

下面是我的情況下,其他人是否有與獲取獨立服務器與D2007和預裝庫運行困難的步驟:

  1. 刪除印第安納波利斯的所有痕跡從您的機器 - 有一個如何在Indy網站某處;
  2. 從Subversion版本庫下載Indy 10中繼線
  3. 根據說明安裝Indy;
  4. 從沉悶的地方下載最新的IW9 - 你需要一把鑰匙;
  5. 安裝它 - 讓它破壞你當前的安裝;

現在,對於OpenSSL的DLL文件:

  • 從這裏獲得他們:http://www.slproweb.com/download/Win32OpenSSL_Light-0_9_8i.exe
    • 這些工作對我來說很好;
  • 確保你的防火牆讓端口443通過(或你選擇的任何東西);
  • 在這一點上,我能夠編譯和運行演示和我的應用程序。

    感謝您的幫助。

    特雷弗

    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 dll 確實需要MS VC++運行時DLL

    爲了規避這一點,我經常創建自己的組DLL爲印: ftp://ftp.fulgan.com/SSL/openssl-1.0.0d-i386-win32-rev2.zip

    我的DLL組不要求: ftp://ftp.fulgan.com/SSL/

    截至今天,你應該使用這個版本被罰款安裝MC VC運行時。

    所以可以肯定地說,比Delphi 2009和/或相應的SVN修訂版更新的任何Indy版本都可以安全地使用slproweb(具有VC依賴性)或我們自己的(來自fulgan mirror)dll。