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

问题描述:

我正在使用SSL应用程序,并且想要控制哪些文件夹忽略,需要或接受客户端证书。可以在web.config中配置客户端证书设置

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

任何想法?

+0

如果这个网站特定项目不需要IIS,然后检查了这一点WCF服务http://www.codeproject.com/KB/WCF/wcfcertificates.aspx – MethodMan 2012-01-03 22:21:35

+0

IIS 7及以上使用web.config中存储此,所以如果你在IIS管理器中设置它们,你会看到你的app.config反映它。 – blowdart 2012-01-03 23:39:50

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

例如,需要在目录界面的SSL证书,可以在以下块添加到你的web.config的配置部分:

<location path="Interface"> 
    <system.webServer> 
     <security> 
     <access sslFlags="Ssl,SslRequireCert" /> 
     </security> 
    </system.webServer> 
    </location> 

请注意,如果你想要求SSL,你必须添加它和适当的证书标志。

从TechNet文档标志的值是:

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

Ssl。该网站或应用程序需要SSL。

SslNegotiateCert。该网站或应用程序接受用于认证的客户端证书

SslRequireCert。该网站或应用程序需要客户端证书进行认证。 Ssl128。该站点或应用程序需要128位SSL证书加密。

无论其

access部分不能被默认覆盖。

为了支持这一点,你必须修改的applicationHost.config在C:\ WINDOWS \ SYSTEM32 \ INETSRV \ CONFIG(或相应的目录为你安装),并更改以下行:

<section name="access" overrideModeDefault="Deny" /> 

到:

<section name="access" overrideModeDefault="Allow" /> 
+1

我还必须添加SslNegotiateCert或者出现错误,所以它最终看起来像这样: 2012-10-01 12:54:00

+0

我已经使用了您的解决方案,它对我的​​本地和测试环境,但在客户端服务器上,它给了500错误,你可以帮我,这可能是因为machien是Server 2012 R2的原因 – Rehan 2017-04-20 12:04:32