Назад | Перейти на главную страницу

Включение поддержки сертификатов SHA2 в Windows Server 2003

Сначала немного справочной информации. У меня есть пакет SSIS, который работает в 32-битной среде Windows Server 2003 SP2. Пакет недавно начал давать сбой из-за следующей ошибки во время задачи сценария, которая загружает веб-страницу с помощью 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-dll/) существует два варианта версии 5014: один из Центра обновления Windows (KB2661254, не работает) и другой как QFE (KB968730).

Эта проблема решается установкой KB3072630, который устанавливается автоматически, если у вас включен Центр обновления Windows. Номер версии Crypt32.dll после обновления - 5.131.3790.5668.

KB938397 и KB968730 являются устаревшими и заменены вышеприведенным обновлением.

Я тоже получил эту ошибку. Я бы установил сертификат на указанный сервер и получил бы эту ошибку. Мое решение заключалось в том, что мне пришлось установить корневой / промежуточный сертификат на каждом сервере, который обращался к этому конкретному сертификату. Вероятно, это произошло потому, что я только что обновил свой внутренний центр сертификации.

Итак, если существует X серверов, которые обращаются к этому сертификату, установите его на этих серверах. Это решило мою проблему.