Как я могу программно настроить виртуальный каталог в IIS 6 для запроса SSL и клиентских сертификатов с начальной точки, когда соответствующий сертификат уже находится в локальном хранилище сертификатов, но текущий веб-сайт (например, веб-сайт по умолчанию) не настроить для использования сертификатов?
Я знаю, как это сделать с помощью графического интерфейса inetmgr, но я хотел бы иметь возможность выполнять эти действия программно, предпочтительно из пакетного сценария или программы на C #.
Я столкнулся с IISCertDeploy.vbs из комплекта ресурсов IIS 6.0, но я не думаю, что он отвечает моим потребностям. Если это можно использовать, то я был бы признателен за более полезный пример того, как его использовать, чем он дает.
Обновление: мне удалось найти решение, которое работает, если на веб-сайте по умолчанию установлен сертификат SSL. Вот объяснение моего решения для тех, у кого есть подобная проблема.
Я написал пакетный скрипт (включен ниже), который использует adsutil.vbs от Microsoft . Мне пока не удалось программно установить сертификат на сайт по умолчанию, но пока это допустимо в качестве ручного одноразового шага.
@echo off
if [%1]==[] GOTO NOPARAM
echo Setting SSL requirements for virtual directory '%1'
REM Setting: Require Secure Channel (SSL) = true
adsutil.vbs set w3svc/1/root/%1/AccessSSL true
REM Setting: Require client certificates = true
adsutil.vbs set w3svc/1/root/%1/AccessSSLNegotiateCert true
REM Set required SSL file permission flags
REM (104 -> AccessSSL=8 | AccessSSLNegotiateCert=32 | AccessSSLRequireCert=64)
adsutil.vbs set w3svc/1/root/%1/AccessSSLFlags 104
GOTO END
:NOPARAM
REM Exit if no virtual directory was specified.
echo Error: Expected parameter specifying virtual directory was not defined.
GOTO END
:END