Списки доверия сертификатов и IIS7
Мне нужно создать CTL для использования с IIS7.
Я сгенерировал файл CTL с помощью MakeCTL (в Win2k3 SDK) и поместил в CTL только свой собственный сертификат RootCA.
Однако когда я затем использую adsutil.vbs, чтобы настроить мой веб-сайт на использование этого CTL, я получаю:
ErrNumber: -2147023584 (0x80070520) Ошибка при попытке установить свойство: SslCtlIdentifier
Я использую adsutil.vbs, как это:
cscript adsutil.vbs set w3svc / 2 / SslCtlIdentifier где это понятное имя CTL
Проблема в том, что я не могу установить понятное имя. В конце мастера написано "Дружественное имя: ".
В IIS6 я могу создать CTL с понятным именем (отображается в сертификате MMC), но если я экспортирую его оттуда, то при импорте у него больше не будет понятного имени.
Может кто-нибудь показать мне, как это сделать, пожалуйста?
3 ответа
Это должно работать на IIS 7.0, но, вероятно, не на IIS 7.5.
Дайте нам знать, если эта страница полезна, пожалуйста - http://www.rethinker.net/Blog/Post/14/How-to-Create-and-Use-a-CTL-for-IIS-7-0
У меня точно такая же проблема, и у меня та же проблема с поиском ответа.
Похоже, не существует документированного способа создания понятного имени для списков доверия сертификатов с использованием MakeCTL. И единственный документированный способ добавить CTL в IIS7 - использовать сценарий adsutil, на который ссылается Нил выше, но для него требуется понятное имя. Я предполагаю, что мы могли бы найти способ программирования, но я не хочу углубляться в это.
Суть этой проблемы заключается в том, что IIS7, похоже, утратил предпочтение CTL, иначе он будет иметь некоторую поддержку их пользовательского интерфейса. Используют ли люди какую-то альтернативу CTL в сочетании с сертификатами на стороне клиента?
Я нахожу это странным, это не большая проблема для IIS7.
Обновление: я наконец вернулся к этому и выяснил проблему Дружественного Имени. Чтобы получить понятное имя, вы должны хранить CTL в хранилище сертификатов, а не в файле (я всегда использовал файловый подход ранее). Таким образом, использование MakeCTL в режиме мастера (без аргументов) и выбор "Хранилища сертификатов" на странице "Хранилище доверенных сертификатов" приводит к появлению новой страницы, которая позволяет указать дружественное имя.
Итак, теперь у меня есть CTL в хранилище сертификатов "Intermediate Certification Authorities" в LocalMachine. Теперь я пытаюсь использовать 'netsh http add sslcert', чтобы назначить CTL моему сайту.
Прежде чем я смог использовать эту команду, мне пришлось удалить существующий сертификат SSL, который был назначен моему сайту для проверки подлинности сервера. Затем в моей команде netsh я указываю отпечаток того же самого сертификата SSL, который я удалил, плюс подготовленный appid, плюс 'sslctlidentifier=MyCTL sslctlstorename=CA'. Результирующая команда:
netsh http add sslcert ipport = 10.10.10.10: 443 certhash = adfdffa988bb50736b8e58a54c1eac26ed005050 appid = {ffc3e181-e14b-4a21-b022-59fc669b09ff} sslctlidentifier = MySlctLidentifier = MySlctLidentifier = MySlctLidentifier = MySlctLidentifier = MySlctLidentifier = MySlctLidentifier = MySlctLidentifier = MyLectL
(IP-адрес исправлен), но я получаю эту ошибку:
Ошибка добавления сертификата SSL, ошибка: 1312 Указанный сеанс входа не существует. Возможно, это уже было прекращено.
Я уверен, что ошибка связана с параметрами CTL, потому что, если я удаляю их, это работает (хотя, конечно, CTL не назначается).
Может ли кто-нибудь помочь мне сделать этот последний шаг и сделать эту работу?
ОБНОВЛЕНИЕ 01-07-2010: я никогда не решал эту проблему с IIS 7.0 и с тех пор перенес наше приложение на IIS 7.5, и я пытаюсь сделать это еще раз. Я установил IIS6-совместимость на своем тестовом сервере и попробовал описанные здесь шаги, используя adsutil.vbs. Я сразу же столкнулся с той же ошибкой, что и Нил выше:
ErrNumber: -2147023584 Ошибка при попытке установить свойство: SslCtlIdentifier
при запуске этой команды:
adsutil.vbs set w3svc / 1 / SslCtlIdentifier MyFriendlyName
Затем я попытался выполнить следующую задокументированную команду adsutil.vbs, и она завершилась с той же ошибкой.
Я подтвердил, что созданный мной CTL имеет понятное имя MyFriendlyName и существует в хранилище LocalComputer "Промежуточные центры сертификации \ Список доверенных сертификатов".
Итак, еще раз я нахожусь в тупике. Я не знаю, что еще попробовать. Кто-нибудь когда-нибудь заставлял CTL работать с IIS7 или 7.5? Когда-либо? Я бью мертвую лошадь. Google не находит ничего, кроме моих собственных постов и других подобных историй.
Обновление 6/08/10 - Теперь я могу подтвердить, что KB981506 решает эту проблему. С этой КБ связано исправление, которое необходимо применить к компьютерам с Server 2008 R2, чтобы включить эту функцию. Как только это установлено, у меня все работает без нареканий.
Вопрос касается IIS7, но для тех, кто ищет эту информацию - из IIS8 вам больше не нужно использовать CTL, а вместо этого используйте "издателей проверки подлинности клиента" в хранилище сертификатов.
Это задокументировано более подробно: http://technet.microsoft.com/en-us/library/hh831771.aspx