我是一个新兴的网站开发者,所以请容忍我的无知。
比方说,我不得不用HTTPS加密我的网站,每当出现关于不可信证书的警告时,我就厌倦了不得不单击“继续”。我使用这方法来安装我的站点的证书。
假设我签署的证书是由“xyz”签发的。由于该商店被称为“受信任的根证书颁发机构”,因此我假设它信任"xyz“作为证书颁发机构。当我的证书被添加到存储区时,这是否意味着现在由"xyz“颁发的任何证书都是自动信任的?
还是将域的SSL证书安装到“受信任的根证书颁发机构”仅使该域受信任?
重点是我想忽略我的网站的警告,特别是,但不想忽视任何其他网站的警告。
编辑:我可能应该阐明我创建证书的确切过程。该网站部署在具有默认OpenSSL和Apache配置的Ubuntu10.04服务器上。要创建证书和密钥文件,我只需使用
# make-ssl-cert generate-default-snakeoil –force-overwrite只留下/etc/apache2/sites available/default-ssl,因为make-ssl-cert命令将这两个文件写入Apache配置文件指向的相同路径。因此,我甚至没有建立一个证书颁发机构来生成我的网站的证书。
这完全改变了场景吗?在客户端上安装没有证书颁发机构作为受信任根创建的证书与安装使用证书创建的证书有什么区别?
编辑2:好吧,如果我尽量缩小这个问题的范围,那就更好了:如果我为我的网站保护证书,并确保它永远不会逃脱,那么要求其他人将我的证书作为受信任的根安装安全吗?攻击者是否能够利用我自己签名的证书并将其安装到其受信任的证书存储区?
发布于 2012-10-13 15:45:26
当您将CA证书安装为“受信任的根”时,这意味着您的应用程序将信任此CA证书颁发的任何证书。默认情况下,这并不限于特定的域。X.509是证书的标准,它包括一种方法来指定给定的CA只用于在特定“区域”内颁发证书,例如用于域中的服务器(参见4.2.1.10节),但现有实现对它的支持很差,或者根本不支持它。所以我建议不要依赖这个特性。
因此,基本规则是,当您安装一个新的受信任的根时,您将您的浏览安全性委托给私钥的所有者。如果您是所有者(这是您自己生成的自签名证书),那么应该由您来确保CA密钥的安全。只要没有其他人得到私钥的副本,就没有问题。这导致了以下方法:
你就完蛋了。如果私钥不再存在,特别是在恶意的对手面前。
另一种方法是为服务器本身使用自签名证书,并指示Web浏览器仅对站点信任该证书。如果您的浏览器可以这样做,那么就不需要篡改根CA。Firefox可以做到这一点;他们称它为安全异常。
发布于 2012-10-14 10:13:23
如果有人拦截了你的用户的流量,那个人可以拉一个中间人的攻击,给你的用户提供他们自己的证书来安装,而不是你的。在这种情况下,它们将能够解密客户端和服务器之间传递的所有数据。
除了这个,没有任何后果。
https://security.stackexchange.com/questions/21560
复制相似问题