在 Windows Server 2003 上啟用 SHA2 證書支持
先介紹一點背景資料。我有一個在 Windows Server 2003 SP2 32 位環境中執行的 SSIS 包。該軟體包最近在使用 SSL 連接下載網頁的腳本任務期間開始失敗,並出現以下錯誤:
"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
一些探勘揭示了一些事情:我也無法從伺服器使用 IE8 訪問有問題的網站(我可以使用 Firefox),並且該網站剛剛獲得了新的 SHA256 證書。
在做了一些研究之後,我目前的假設是問題是我不支持此伺服器上的 SHA2 證書。我從該站點獲取證書並執行
CertUtil -verify [cert file]
,結果如下:The signature of the certificate can not be verified. 0x80096004 (-2146869244)
我從 Microsoft 找到了幾個修補程序,據我了解,它們中的任何一個都應該啟用對 SHA2 證書的支持:
所以我請求了 kb968730 的修補程序並嘗試安裝它,但收到以下錯誤:
The installation cannot continue because the following packages might not be valid: KB2616676_V2 c:\windows\system32\dllcache\crypt32.dll 5.131.3790.4905 KB2616676_V2 c:\windows\system32\crypt32.dll 5.131.3790.4905 Reinstall the packages listed above, and then reinstall KB968730
修補程序中包含的 crypt32 庫的版本是 5.131.3790.4477,這解釋了為什麼安裝程序無法繼續。
在這一點上,我不太確定我需要做什麼。kb968730 文章指出 crypt32.dll 是唯一由修補程序更新的文件,這讓我想,既然我已經有了更新的版本,我不應該已經有了這個功能嗎?但是,似乎我沒有,除非我誤解了問題的根本原因。
Crypt32.dll 5.131.3790.5235 版本修復了該問題(重啟後)。可在 http://support2.microsoft.com/kb/2868626獲得
之前安裝的版本是 5.131.3790.5014 版本,並沒有解決問題。根據這篇文章 ( https://mendel129.wordpress.com/tag/crypt32-dl l/),5014 版本有兩種變體:一種來自 Windows 更新(KB2661254,不起作用),另一種是 QFE(KB968730 )。
這個問題可以通過安裝KB3072630來解決,如果您啟用了 Windows 更新,它會自動安裝。更新後Crypt32.dll的版本號為5.131.3790.5668。
KB938397 和 KB968730 已棄用並由上述更新取代。