我有一个请求,允许客户选择使用mTLS(相互身份验证)对我们的服务进行身份验证。我的问题是我只想在一个端点上并且仅在特殊情况下才允许这样做。我不想在每个请求上全局接受或要求客户证书。 IIS中的设置允许忽略,接受或要求。
当我将其设置为“接受”并浏览到Chrome中的网站时,我会弹出此窗口
如果将证书传递给特定的端点但没有改变其他端点的行为,是否可以接受证书?
答案 0 :(得分:1)
要在特定路线上启用SSL Negotiation settings,您可以将该设置应用于特定位置
<location path="Route/Goes/Here">
<system.webServer>
<security>
<access sslFlags="SslNegotiateCert"/>
</security>
</system.webServer>
</location>
根据IIS的设置方式,这可能会导致出现500错误,提示“此配置部分无法在此路径上使用。当该部分锁定在父级时,会发生这种情况。”如果发生这种情况,您需要启用“ SSL设置读/写”标志,如下所示:
或使用Powershell:
Set-WebConfiguration //System.WebServer/Security/access[@sslFlags] -metadata overrideMode -value Allow -PSPath IIS:/