我正在尝试使用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”。
答案 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" />