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

What is the difference between requiring an SSL cert and accepting an SSL cert?

提问人:Adjit 提问时间:10/15/2013 最后编辑:user207421Adjit 更新时间:11/16/2023 访问量:46233

问:

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

在我的某个网页的IIS管理器中,我有这样的设置:enter image description here

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

所以也许我的问题措辞错误......我不确定,我对这个问题的理解相当有限,所以任何帮助将不胜感激。

谢谢!

SSL 的 HTTPS

评论

0赞 nspire 8/11/2014
我发现这篇文章清楚地解释了这一点。IIS 和客户端证书 http://support.microsoft.com/kb/907274
2赞 dicemaster 3/26/2021
@nspire看起来链接已经死了。
0赞 user207421 11/16/2023
它应该是 Ignore、Request、Require

答:

20赞 Bruno 10/15/2013 #1

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

  • 忽略是指它根本不使用。
  • 如果证书已提供,则 Accept 将获取证书,但也会继续处理客户端未提供证书的连接。
  • “仅要求”继续处理具有客户端证书的连接。

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

评论

0赞 Adjit 10/16/2013
所以,对我来说......我有一个结帐页面,然后转到信用卡信息以及正常结帐页面将拥有的所有内容......我有它,所以 SSL 是必需的,但建议也需要 CCA?
0赞 Bruno 10/16/2013
“需要 SSL”只是意味着它只会让客户端通过以下方式访问此应用程序(如果没有,可能会尝试从 to 升级,但这不是一个完整的解决方案)。这与客户端证书设置无关。(如果您未使用客户端证书,只需选择忽略。https://http://https://
0赞 Adjit 10/16/2013
还行。我想我真正想问的是,您认为我是否也应该使用客户端证书(用于信用卡支付)还是SSL足够?
0赞 Bruno 10/16/2013
一般而言,您的用户不太可能拥有客户端证书。
1赞 Bruno 11/26/2020
@Viku 可能不是。“要求 SSL”是指无论是否使用客户端证书,都需要 SSL/TLS。以下 3 个选项(在“客户端证书”下)与 client-cert authnz 相关。
2赞 Ogglas 11/18/2017 #2

扩展@Bruno给出的答案。这些值可以在 -file 中设置,甚至可以在允许覆盖的情况下设置。applicationHost.configweb.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://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/access