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

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

这违背了我对https所做的一切。

我阅读维基百科 ,它提到你需要一个可信任的证书或自签名证书来configurationhttps。

有没有可能configurationIIS响应HTTPS没有任何证书?

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

简而言之,不,但可能会有细微的情况,这取决于您想要如何部署系统。

HTTPS是基于SSL / TLS的HTTP,您可以使用不带证书的 SSL / TLS,也可以使用除X.509之外的其他types的证书 。

  • 匿名密码套件:它们可以提供encryption,但不需要身份validation。 就安全性而言,没有什么用处……引用RFC 4346 :“ 匿名Diffie-Hellman强烈不鼓励,因为它不能阻止中间人攻击。
  • 预共享密钥 :它有自己的机制来validation远程身份,但密钥的共享性带来了自己的一套问题(特别是有限的部署)。
  • Kerberos密码套件 :客户端可以根据Kerberos主体名称validation服务器的身份。

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

通常,通过解引用URI来生成HTTP / TLS请求。 因此,服务器的主机名是客户端已知的。 如果主机名是可用的,客户端必须根据服务器证书信息中提供的服务器身份对其进行检查,以防止中间人攻击。

如果客户端具有关于服务器的预期身份的外部信息,则可以省略主机名检查。 (例如,客户端可能连接到地址和主机名是dynamic的机器,但客户端知道服务器将出现的证书)。在这种情况下,尽可能地缩小可接受证书的范围是非常重要的为了防止中间人的攻击。 在特殊情况下,客户端可能会忽略服务器的身份,但必须了解的是,这样做会使连接处于开放状态,从而导致主动攻击。

简而言之,它显然是用于X.509证书(它清楚地引用了RFC 2459,后来被RFC 3280和5280取代:带有X.509证书的PKI)。

当您使用Kerberos密码套件时,可能会出现边缘情况。 处理服务器的Kerberos服务票证可能被认为具有与通常的HTTPS中的X.509证书相同的用途,以validation对方的身份。 它不太符合RFC 2818的规定(尽pipe它可能属于“ 如果客户端具有关于服务器的预期身份的外部信息,则可以省略主机名检查 ”),但是它不会是完全荒谬。 这就是说,我不认为普通浏览器通常支持TLS Kerberos密码套件(一个数字可以通过SPNEGO身份validation支持Kerberos,但这是不相关的)。 另外,这也只适用于使用Kerberos的环境。

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

没有任何证书,你不能使用https。 您需要购买一个可信任的证书或创build一个自签名的testing。 部分configuration你的web服务器使用https是指向正确的密钥文件。 当然,这不仅适用于所有的networking服务器iis。