19.03.2012 || Раздел: || Windows || IIS || SSL Многие начинающие администраторы сталкиваются с проблемой при настройке IIS для работы с HTTPS протоколом. Непосредственно после "успешной" настройки в IIS веб-сайта на работу с протоколом HTTPS (т.е. установлен сертификат в локальное хранилище компьютера и в Bindings на 443 порту привязан сертификат) вы обнаруживаете, что после перезагрузки сервера (например, при автоматической установке системных обновлений) сайт перестает открываться (например, IE выдает абсолютно безымянную ошибку "Internet Explorer cannot display the webpage / Internet Explorer не может отобразить эту веб-страницу"). Вы заходите в системные логи и видите следующую ошибку: "Event ID 36870 - A fatal error occurred when attempting to access the SSL server credential private key. The error code returned from the cryptographic module is 0x8009030d. The internal error state is 10001." Чаще всего это означает не верную установку Вашего сертификата: 1) либо он без приватного ключа, 2) либо установлен не туда, 3) либо установлен не так, как надо :-) Чтобы быстро поднять Ваш сайт в работу, можно первоначально сделать такое временное решение (сработает до следующей перезагрузки): в IIS7 в "Bindings" Вашего сайта открыть на редактирование строку с привязкой протокола 443 и, ничего не меняя, пересохранить. Теперь можно подумать о глобальном решении проблемы. Нам нужно, чтобы сертификат поместился в правильное хранилище компьютера (а не пользователя). Мне помогла всего одна команда с использованием утилиты Certutil.exe (http://technet.microsoft.com/ru-ru/library/ee624045(v=WS.10).aspx). Сначала удаляем предыдущий сертификат (если он был ранее загружен в хранилище ПК). Затем, открываем командную строку под администратором и запускаем команду со следующими параметрами: certutil.exe -importpfx -p password C:\Temp\SSLcert.pfx Где, Эта команда импортирует сертификат в нужные хранилища локальной машины. После этого снова привяжите сертификат в "Bindings" сайта, запустите сайт, убедитесь, что он работает. Перезагрузите ПК, проверьте, что сайт теперь запускается после перезагрузки. Для справки приведу еще пару полезных команд: 1) certmgr.exe -add -c RootCA.cer -s -r localMachine Root Импортирование сертификата корневого центра сертификации 2) certmgr.exe -add -c CA.cer -s -r localMachine CA Импортирование сертификата выдающего центра сертификации Список названий хранилищ сертификатов:
См. также - Настройка сертификата для использования протоколом SSL с помощью команд httpcfg и netsh © Сушков С.А. (Соавтор: Ella Sea)
Похожие статьи
|
|