要求SSL证书和接受SSL证书之间有什么区别?

时间:2013-10-15 14:17:03

标签: ssl https

所以我知道要求SSL证书和接受之间的根本区别,一个意味着您必须拥有SSL证书,另一个意味着您不需要SSL证书。

在某个网页的IIS管理器中,我进行了以下设置:enter image description here

我遇到的问题是,当我设置要求SSL证书并将客户端证书设置为接受/忽略时,我只能使用HTTPS访问网页。现在,如果我将其更改为“需要”,即使使用HTTPS,我也无法再访问该网页...所以我只想弄清楚它们之间的区别,以及它对网页的影响。

所以也许我的问题是错误的......我不确定,我对这个问题的理解是相当有限的,所以任何帮助都会受到赞赏。

谢谢!

3 个答案:

答案 0 :(得分:15)

客户端证书身份验证可以是可选的,也可以是强制的,或根本不使用。

  • 忽略是根本不使用它。
  • 接受会在出示证书时获取证书,但也会继续提供客户未提供的证书。
  • 要求仅继续使用具有客户端证书的连接。

客户端证书身份验证只能由服务器在SSL / TLS中启动,因此这个术语不太正确,但这就是IIS中使用的。

答案 1 :(得分:6)

我发现这篇文章清楚地解释了它。

IIS和客户端证书 http://support.microsoft.com/kb/907274

答案 2 :(得分:0)

扩展@Bruno给出的答案。如果允许覆盖,则可以在applicationHost.config - 文件甚至web.config中设置这些值。

该属性名为sslFlags,您可以找到可能的值以及下面的示例。

None                Disable SSL.
Ssl                 Require SSL.
SslNegotiateCert    Accept client certificates for authentication.
SslRequireCert      Require clients certificates for authentication.
SslMapCert          Enable certificate mapping authentication.
Ssl128              Require 128-bit SSL.

名为Contoso的站点的示例,该站点需要HTTPS和服务器信任的客户端证书:

<location path="Contoso">
   <system.webServer>
      <security>
         <access sslFlags="Ssl,SslNegotiateCert,SslRequireCert">
      </security>
   </system.webServer>
</location>

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/access