Https 可以在没有证书的情况下工作吗?

Mar*_*ark 11 windows-server-2008 ssl certificate https iis-7.5

最近我们的基础架构团队告诉我们的开发团队,您不需要 https 证书。他们提到购买证书的唯一好处是让消费者放心,他们正在连接到正确的网站。

这与我对 https 的假设背道而驰。

我阅读了维基百科,它提到您需要一个受信任的证书或一个自签名证书来配置 https。

是否可以将 IIS 配置为在没有任何证书的情况下响应 https ?

Dri*_*ant 24

不可以。您必须有证书。它可以是自签名的,但必须有一个公钥/私钥对来在服务器和客户端之间交换会话对称密钥以加密数据。


Bru*_*uno 13

简而言之,不是,但可能会有一些微妙的情况,具体取决于您希望如何部署系统。

HTTPS 是基于 SSL/TLS 的 HTTP,您可以在没有证书或 X.509 以外的其他类型证书的情况下使用 SSL/TLS 。

  • 匿名密码套件:它们可以提供加密,但无需身份验证。就安全而言,相当无用……引用RFC 4346:“强烈建议不要使用匿名 Diffie-Hellman,因为它无法防止中间人攻击。
  • 预共享密钥:它有自己的验证远程身份的机制,但密钥的共享特性带来了它自己的一系列问题(特别是有限的部署)。
  • Kerberos 密码套件:客户端可以根据 Kerberos 主体名称验证服务器的身份。

严格来说,HTTP over TLS 规范说明如下:

通常,HTTP/TLS 请求是通过取消引用 URI 生成的。因此,客户端知道服务器的主机名。如果主机名可用,客户端必须根据服务器证书消息中显示的服务器身份检查它,以防止中间人攻击。

如果客户端有关于服务器预期身份的外部信息,主机名检查可以省略。(例如,客户端可能连接到一台地址和主机名是动态的机器,但客户端知道服务器将提供的证书。)在这种情况下,尽可能缩小可接受证书的范围很重要以防止中间人攻击。在特殊情况下,客户端简单地忽略服务器的身份可能是合适的,但必须理解这会使连接对主动攻击开放。

简而言之,它显然旨在与 X.509 证书一起使用(它明确引用了 RFC 2459,后来被 RFC 3280 和 5280:带有 X.509 证书的 PKI)所取代。

使用 Kerberos 密码套件时可能会出现边缘情况。将服务器的 Kerberos 服务票据视为与通常 HTTPS 中的 X.509 证书具有相同目的可能是有意义的,用于验证远程方的身份。它不太符合 RFC 2818 的规则(尽管它可能属于“如果客户端有关于服务器预期身份的外部信息,主机名检查可以省略。 ”),但它不会完全荒谬。话虽如此,我认为通常的浏览器一般不支持 TLS Kerberos 密码套件(一个数字可以通过 SPNEGO 身份验证支持 Kerberos,但这无关紧要)。此外,这也仅适用于适合使用 Kerberos 的环境。

[让] 消费者放心,他们正在连接到正确的网站”实际上是保护他们与您的服务器之间通信的关键要求之一。请使用他们可以验证的证书,并使用适当的命名约定(RFC 2818 或最近的 RFC 6125)。