IIS是否进行SSL证书检查或是否必须进行验证?

buc*_*nic 13 iis ssl wcf client-certificates

我将IIS设置为仅接受具有SSL证书的客户端连接.我在IIS上运行WCF服务.我在服务器可信CA中有一个证书颁发机构.现在,当客户端连接到服务时,IIS是否验证客户端证书是否由我的一个受信任的CA颁发?或者我必须在我的WCF服务中进行验证?

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

Lad*_*nka 15

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

如果要将服务的访问权限仅限于有限的客户端子集(仅使用单个CA颁发的证书),则应将此要求从身份验证(验证证书)移至WCF服务中的authorization = custom AuthorizationPolicy,您将在该服务中验证该证书由正确的CA颁发=客户有权调用您的服务.

可以在系统级别使用netsh -check sslctlidentifier和配置受信任的颁发者sslctlstorename.对于整个端口(网站),此配置将是全局的,因此如果您在同一端口上托管了多个具有不同要求的Web应用程序或服务,则这将不适合您.