IIS是否检查SSL证书,还是我必须验证它



我将IIS设置为只接受带有SSL证书的客户端连接。我有一个WCF服务在IIS上运行。我在服务器受信任的ca中有一个证书颁发机构。现在,当客户机连接到服务时,IIS是否验证客户机证书是由我的一个受信任的ca颁发的?还是我必须在我的WCF服务中进行验证?

另外,如果我希望服务接受来自一个特定CA(不是所有我信任的CA,只有一个)的连接,我是否必须在服务代码中进行验证?

如果您将IIS配置为要求相互HTTPS(带有客户端证书的SSL),则IIS/http。客户端证书必须在受信任的人的存储中,或者由受信任的CA颁发。在建立SSL连接的安全握手过程中验证证书。当使用IIS托管WCF服务时,此验证在WCF之外完成(如果是自托管,则可以使用自定义证书验证)。

如果您希望将对服务的访问限制在有限的客户端子集(仅由单个CA颁发证书),您应该将此需求从身份验证(验证证书)移动到WCF服务中的authorization = custom AuthorizationPolicy,在那里您将验证证书是由正确的CA颁发的=客户端被授权调用您的服务。

可信发行者也可以在系统级配置netsh - check sslctlidentifiersslctlstorename。这个配置对于整个端口(网站)是全局的,所以如果你有多个web应用程序或服务在同一个端口上托管不同的需求,这将不是一个选项。

是的,IIS验证客户端证书进行相互认证,您不必在web服务代码中检查它。
查看这篇文章,会更清楚。

最新更新