如果我可以为某个域设置一个DNS服务器,该服务器使用服务器的IP进行响应,同时将https和所有DNS查询请求分别重定向到本地https站点和本地DNS服务器,这会导致客户端浏览器通过https锥状凭证获得站点证书,该证书与浏览器从DNS查询中获得的证书匹配,从而避免“证书不受信任”错误吗?
这是基于这样的逻辑:如果我只重定向https流量并将DNS留给某个外部服务器,DNS可以使用与证书中的IP不匹配的IP来响应客户端的查询,从而产生由于不匹配造成的错误。
如果我不能这样做,浏览器如何知道如何信任它收到的证书?它是否将证书中给出的IP与它所拥有的DNS信息进行比较?
发布于 2018-01-07 01:18:22
证书不包含IP地址,但实际上包含发出它们的站点的主机名。(即www.google.com)
当浏览器连接到HTTPS站点时,它会验证了几件事:
为了成功地(意味着没有浏览器警告) MITM HTTPS通信量,您需要一个由客户端设备信任的证书颁发机构签名的正确主机名的证书。如果没有这种机制,HTTPS将无法有效地防范活动攻击者。(这到底有多有效,是业界专业人士争论的问题。)
DNS在证书验证中基本上不起任何作用。(有一些非主流的用途,如RFC 4398,但我不知道有任何浏览器使用这些。)
https://security.stackexchange.com/questions/176932
复制相似问题