SSL 默认生成自签名“蛇油”证书,例如/etc/ssl/certs/ssl-cert-snakeoil.pem
。根据维基百科,snake oil 是一种被认为是欺诈或伪造的加密方法或产品。这些证书有什么虚假之处吗?当然,它们不是由任何知名证书颁发机构签名的,但证书本身可能仍然是与其他证书一样好的真正证书。例如,我可能会亲自将我的服务器的公钥安全地分发给我的所有客户。假设这种情况,生成的证书是否有任何虚假之处,还是名称具有误导性?
答案1
记住 SSL 有两个非常重要的功能
- 安全通信
- 相信
任何自生成的 SSL 证书都会为您提供 1.允许加密流量或如您所说的有效 SSL 证书。
但是,自生成的 SSL 证书只能让信任您的人信任您。由受信任的第三方生成 SSL 证书的原因在于提供第二个信息。您的浏览器信任他们,他们也信任您。如果您自己生成证书,您可以声称自己是 www.microsoft.com,如果有人信任您,那么它就是 www.microsoft.com。
另外,正如评论中指出的那样,这就是为什么你不应该信任某人为其服务器签署的自签名证书,因为你的浏览器显然会信任由同一服务器签名的任何未来证书。
这就是为什么蛇油证书是自行生成的。
更新:LetsEncrypt与现代网络服务器相结合的服务,例如球童消除获取和使用 TLS 证书的几乎所有困难,因此不再需要蛇油证书!
答案2
自签名证书将像标准证书一样加密您的通信。因此加密不是问题。
证书也可用于验证身份。其工作原理是,当您安全地连接到服务器时,该服务器会向您或您的浏览器出示其证书,然后您或您的浏览器决定是否可以信任该服务器的身份声明。
证书可以由其他“更高级别”的证书(通常称为认证机构)签名。因此,如果服务器的证书是由您或您的浏览器信任的 CA 签名的,则该身份被视为有效。
大多数主流浏览器都附带一些它们自动信任的根证书,这些证书来自 Verisign 和其他知名 CA。
对于自签名证书,由于它不是由第三方 CA 签名的,而是由制作证书的同一实体签名的,因此您不能依赖除生成证书的人之外的任何人来验证身份。这相当于有人打印自己的身份证并将其交给您验证身份。如果您知道/信任生成证书的人或您自己做这件事,尽管浏览器会发出警告,但这不一定是个问题。
答案3
维基百科还说:“蛇油这个词最初是指欺诈性的保健产品或未经证实的药物,但后来被用来指代任何质量或益处值得怀疑或无法验证的产品”。
在这种情况下,不可验证的质量非常重要。如果您浏览的 SSL 站点没有指向受信任证书颁发机构的证书链,那么您就无法依赖 SSL 来验证该站点是否由拥有该域的个人或组织拥有和运营(如浏览器的 URL 栏中所示)。
现代网络浏览器在浏览使用自签名(“蛇油”)证书的网站时会显示安全警告,因为它们缺少此受信任的证书链。例如,这在私人内部网上可能会很烦人,但它确实可以在某种程度上保护人们免于将私人数据和付款信息输入到钓鱼网站。