我正在 Windows 7 中编辑 hosts 文件,我想要将使用 https 的站点的域名映射到显然使用 http 的不安全站点的 IP 地址。例如,我有“pornhub.com”的 IP 地址,我编辑 hosts 文件并将 IP 地址分配给“Facebook.com”域名。现在,如果我尝试在浏览器中输入 facebook.com,我应该会进入 pornhub 站点(找不到不安全站点的名称,因为我脑海中出现的所有热门站点都是使用 https 的安全站点
答案1
你不需要– 因为它确实有没事做用 IP 地址。TLS 的一部分(HTTPS 也使用这种机制)是服务器提供证据,证明域名属于该服务器。
例如,当您连接到 Facebook 时,其服务器会提供一份显示“我有权使用www.facebook.com
”的证书(以及数字签名)。然后您的浏览器会将该证书与您输入的地址(URL)进行比较,即https://www.facebook.com/
。它根本不需要验证 IP 地址。
仅当服务器具有相应的私钥(它永远不会向访问者透露 - 它仅用于签名)时,证书才可用,并且必须由浏览器认可的 CA(证书颁发机构)之一颁发。
因此,如果 TLS 正确执行其工作,那么呈现虚假网站的唯一方法(有时开发人员试图排除故障,或公司试图监视员工时会这样做)是创建自己的私有 CA,颁发自己的证书,和最重要的是将 CA 证书安装到所有客户端的计算机上,这样他们就会“信任”您的虚假网站证书。
对于开发来说,有各种工具可以做到这一点,例如 Fiddler 和 Burp Proxy。