我希望通过HTTPS为web服务的临时本地测试生成一个自签名证书。不过,我不想安装CA,因为每次web服务的启动都会动态生成自签名证书,每次都必须安装新的CA。我可以每次点击“高级->继续(不安全)”。
因此,当我考虑在SAN中添加哪些IP地址和DNS名称时,我尝试使用无效和空的DNS名称,但是Firefox和Chrome根本没有抱怨主机名不匹配。他们只抱怨不可信的CA。另一方面,Edge抱怨主机名不匹配,只有当包含用于访问web服务的主机作为SAN中的IP地址/ DNS名称时,才会抱怨不受信任的CA。
我希望在所有浏览器中都会对这两个问题发出警告:不可信的CA和不匹配的主机名。因为假设我暂时信任(“高级->进行(不安全)”)自签名证书,基于火狐在“证书只对以下名称有效”下面列出的证书:“,我仍然希望不受中间人攻击,不是吗?”
目前,如果我生成一个具有SAN IP地址"127.0.0.1“、"192.168.178.123”(局域网IP地址)和DNS名称"localhost“、"alice”(主机名)和"alice.local“的自签名证书,并且我暂时信任该CA,则攻击者现在可以使用DNS名称"eve.local”通过他的计算机重定向通信,并生成一个具有"alice.local“等(但没有"eve.local")的新的自签名证书,而我作为用户只会收到关于不受信任CA的警告。
如果这个行为是为了(浏览器),那么为什么还要设置一个SAN呢?将"“设置为DNS名称似乎具有相同的效果(至少在未安装CA时是如此)。
发布于 2019-04-23 20:08:28
如果通过显式异常绕过警告证书,则此异常仅对此特定域上的此特定证书有效。在证书中提到哪些域并不重要,只为当前域添加异常。因此,即使您接受一个在您的paypal.com上包含SAN的证书,该证书也只能用于testsite.example.org,并且不能用于对paypal.com的默认MITM访问。
换句话说:证书的具体内容(CN,SAN,到期.)在添加显式异常时,发行人(自签名,由不受信任的CA签名)也是无关的。
发布于 2019-04-23 19:27:42
如果证书链不受信任,则没有太多理由验证其他字段,如名称、时间有效性等。Edge抱怨名称无效(以及不受信任的CA)意味着Edge执行其他检查并返回所有问题的累积列表。其他浏览器可能不需要额外的检查,并且在第一个错误时失败。从安全性的角度来看,这两种行为都是可以接受的。
“不受信任的CA”错误意味着证书是由我们不认识的人生成的,而在证书中写入的内容实际上是垃圾,浏览器可以跳过其他(包括SAN)内容验证来节省您的时间。
https://security.stackexchange.com/questions/207899
复制相似问题