如何在IIS 6上以编程方式配置虚拟目录,以便从本地证书存储中已有合适证书的起点开始要求SSL和客户端证书,但是,当前网站(例如,默认网站)尚未设置使用证书?
我知道如何使用inetmgr GUI执行此操作,但是,我希望能够以编程方式执行这些操作,最好是从批处理脚本或C#程序执行。
我从IIS 6.0资源工具包中遇到过IISCertDeploy.vbs,但我认为它不符合我的需求。如果可以使用它,那么我将非常感谢如何使用它比它提供的更有用的示例。
更新:我已经设法找到一个解决方案,只要默认网站安装了SSL证书就可以使用。这是对我遇到类似问题的人的解决方案的解释。
我编写了一个使用Microsoft's adsutil.vbs的批处理脚本(包含在下面)。我还没有成功地以defograt网站的形式安装证书,但是,作为一个手动的一次性步骤,现在可以接受。
@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