IIS是否执行SSL证书检查还是我需要验证?

16

我已经设置了一个IIS,只接受带有SSL证书的客户端连接。在IIS上运行一个WCF服务。服务器上有一个信任的CA证书颁发机构。

现在,当一个客户端连接到这个服务时,IIS会验证客户端证书是否由我信任的颁发机构之一颁发的吗?还是需要在WCF服务中进行验证?

此外,如果我希望服务接受来自特定颁发机构(不是所有受信任的机构,而是仅限于一个)的连接,那么我是否需要在服务代码中进行验证?

2个回答

17
如果您配置了IIS以要求双向HTTPS(SSL与客户端证书),则IIS / http.sys负责验证证书,客户端证书必须位于信任的人员存储库中或者必须由受信任的CA颁发。证书在安全握手期间进行验证,以建立SSL连接。当使用IIS托管WCF服务时,此验证是在WCF之外完成的(在自托管情况下,可以使用自定义证书验证)。
如果您希望将对服务的访问限制为仅有限数量的客户端(具有由单个CA颁发的证书),则应将此要求从身份验证(验证证书)移至授权 = 在WCF服务中使用自定义AuthorizationPolicy进行验证,以确保证书由正确的CA颁发=客户端被授权调用您的服务。
可信颁发机构也可以通过netsh在系统级别上配置-检查sslctlidentifiersslctlstorename。该配置将针对整个端口(网站)全局生效,因此如果您在同一端口上托管具有不同需求的多个Web应用程序或服务,则这不是您的选择。

4
是的,IIS会验证客户端证书以进行双向身份验证,您不必在Web服务代码中检查它。
查看本文,更加清晰易懂。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接