Списки доверия сертификатов и IIS7 - PullRequest
4 голосов
/ 28 ноября 2008

Мне нужно создать 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 ]

3 голосов
/ 05 февраля 2010

Это должно работать на IIS 7.0, но, вероятно, не на IIS 7.5.
Дайте нам знать, если эта страница полезна, пожалуйста - http://www.rethinker.net/Blog/Post/14/How-to-Create-and-Use-a-CTL-for-IIS-7-0

2 голосов
/ 05 декабря 2008

У меня точно такая же проблема, и мне не удается найти ответ.

Как представляется, не существует документированного способа создания понятного имени для списков доверия сертификатов с использованием MakeCTL. И единственный документированный способ добавить CTL в IIS7 - использовать сценарий adsutil, на который ссылается Нил выше, но для него требуется понятное имя. Я предполагаю, что мы могли бы найти способ программирования, но я не собираюсь углубляться в это.

Суть этой проблемы заключается в том, что IIS7, похоже, утратил благосклонность к CTL, иначе он будет иметь некоторую поддержку их пользовательского интерфейса. Люди используют какую-то альтернативу CTL в сочетании с сертификатами на стороне клиента?

Мне кажется странным, что это не большая проблема для IIS7.

Обновление: Я наконец вернулся к этому и выяснил проблему Дружественного Имени. Чтобы получить понятное имя, вы должны хранить CTL в хранилище сертификатов, а не в файле (я всегда использовал файловый подход ранее). Таким образом, использование MakeCTL в режиме мастера (без аргументов) и выбор «Хранилища сертификатов» на странице «Хранилище доверенных сертификатов» приводит к появлению новой страницы, которая позволяет указать дружественное имя.

Итак, теперь у меня есть CTL в хранилище сертификатов «Промежуточные центры сертификации» 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} sier * 101lsctl * sstctlslstlsltlsltlsltslstl (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, чтобы включить эту функцию. Как только это установлено, у меня все работает без нареканий.

1 голос
/ 08 декабря 2014

Вопрос касается IIS7, но для тех, кто ищет эту информацию - от IIS8 вам больше не нужно использовать CTL, а вместо этого используйте «Client Authentication Issuers» в хранилище сертификатов.

Это задокументировано более подробно: http://technet.microsoft.com/en-us/library/hh831771.aspx

...