如何以编程方式配置虚拟目录以使用IIS 6要求SSL?

时间:2009-03-23 20:31:45

标签: ssl iis-6 certificate configure

如何在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

0 个答案:

没有答案