是否可以在web.config中配置客户端证书设置

我正在使用SSL应用程序,并希望控制哪些文件夹忽略,要求或接受客户端认证。

最终目标是让webApp的子文件夹忽略客户端认证。 我不想通过IIS执行此操作,因为它必须在整个Web场中进行复制。

有任何想法吗?

您可以使用web.config中的访问部分和locations (或相应子目录中的web.configs)的组合来配置它。

例如,要在目录Interface中要求SSL证书,可以将以下块添加到web.config的配置部分:

         

注意:正如@Jonathan DeMarks在评论中所述,我还需要包含SslNegotiateCert以使其工作(使用IIS 8.5和Chrome)。 所以我的工作配置是: sslFlags="Ssl,SslRequireCert,SslNegotiateCert"实际上我得到一个错误,说明我正在指定SslRequireCert但我可以使用SslNegotiateCert

请注意,如果您想要Ssl,则必须添加它和相应的证书标志。

technet文档中的标志值为:

没有。 此默认设置禁用站点或应用程序的SSL。

SSL。 该站点或应用程序需要SSL。

SslNegotiateCert。 站点或应用程序接受客户端证书进行身份validation

SslRequireCert。 站点或应用程序需要客户端证书进行身份validation SSL128。 站点或应用程序需要128位SSL证书加密。

然而

默认情况下,无法覆盖access部分。

为了支持这一点,您必须在C:\ Windows \ System32 \ inetsrv \ config(或安装的相应目录)中修改applicationHost.config并更改以下行:

 

至: