<使用IIS Express访问sslflags =“SslRequireCert”> - &gt; HTTP错误500.19

时间:2017-11-16 10:56:09

标签: c# asp.net iis web-config iis-express

我正在尝试使用IIS Express测试客户端证书身份验证。是否可以或我需要使用IIS

我修改了我的web.config,如下所示:

<configuration>
    <system.webServer>
        <security>
            <access sslFlags="SslRequireCert" />
        </security>
    </system.webServer>
</configuration>

我使用的指南:

https://dotnetcodr.com/2016/01/11/using-client-certificates-in-net-part-1-introduction/

.vs\config\applicationhost.config看起来像这样,没有deny或allowOverride设置为false。:

<security>
    <access sslFlags="None" />
    ...
</security>

错误:

  

HTTP错误500.19 - 内部服务器错误请求的页面不能   访问,因为页面的相关配置数据是   无效。

     

此配置部分不能在此路径中使用。有时候是这样的   当该部分被锁定在父级别时。锁定是通过   default(overrideModeDefault =“Deny”),或由位置明确设置   tag with overrideMode =“Deny”或legacy allowOverride =“false”。

2 个答案:

答案 0 :(得分:1)

可以使用applicationhost.config在IIS Express中完全完成此操作。 这篇很棒的文章对我有所帮助:https://improveandrepeat.com/2017/07/how-to-configure-iis-express-to-accept-ssl-client-certificates/

它正在对applicationhost.config进行这两项更改,以接受客户端证书并要求它们

<access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />

<iisClientCertificateMappingAuthentication enabled="true">
            </iisClientCertificateMappingAuthentication>

答案 1 :(得分:0)

.vs\config\applicationhost.config中,我发现了以下几行:

<configuration>
    <configSections>
        <sectionGroup name="system.webServer">
            <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
            </sectionGroup>
        </sectionGroup>
    </configSections>
</configuration>

将其更改为此,现在可以正常使用。

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