У меня точно такая же проблема, и мне не удается найти ответ.
Как представляется, не существует документированного способа создания понятного имени для списков доверия сертификатов с использованием 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, чтобы включить эту функцию. Как только это установлено, у меня все работает без нареканий.