如何本地化 https 请求

关键是这个怎么弄?在服务器我是通过 certbot,在是在本地好像是不可行?

我这可以,配置方法和你截图里的一样,也curl看了下 curl

自签通不过证书验证吧,最简单的办法还是设置代理

阿里云的,一年换一次

题主应该是想架个服务器伪造成 repo1.maven.org

把下载好的内容放到 $HOME/.m2 下面就可以了。

劫持 DNS 的方法有很多,最出名的有 GFW。要想伪造 https ,就必须动客户端,比如曾经的 CNNIC 被各大浏览器吊销就是因为滥发根证书帮助监视用户

请教一个疑惑的问题,浏览器检验http证书这个过程需要连网吗?如前面所言,我改hosts把域名指向127.0.0.1,然后本地nginx配置好ssl证书(DigiCert生成的)443端口转发,可以在本机使用https了。然后我把电脑的网断了,然后这个https请求在我本地浏览器上仍可用(如图),这样看浏览器检验ssl证书这个过程并未联网

浏览器向服务端发请求,获取到 CA信息以及数字证书,之后验证证书是否有效、CA与证书是否匹配,最后验证 CA 是否可信。可信任的 CA 都内置在系统中,所以如果是本地的服务器,并不需要联网验证。

我所知道的就是如Fiddler 之类的爬虫工具,可以伪造服务器,HTTPS 的数据也可以直接爬过来(我觉得很厉害),我前面提到过爬航空数据的时候发现的

Fiddler 用的自签名证书, 为了区分特地叫 DO_NOT_TRUST_FiddlerRoot. 只要操作系统信任了 DO_NOT_TRUST_FiddlerRoot, 就会信任由它签发的所有证书. Fiddler 成为中间人, 自然可以解密 https.

可以去本地 Cert Store 看一下, 会发现由 DO_NOT_TRUST_FiddlerRoot 签发的各个域名的证书.

1 个赞

不需要联网. 只要浏览器或者操作系统信任了根证书, 就会信任由根证书签发的所有证书. 不需要和 Cert Provider 有交互.

突然想到一个问题,dns会被劫持,https可以伪造,那ip地址可以伪造吗,我觉得应该是不可以,https用于判断网站是否可信(没有被劫持),但对于无域名,直接使用ip地址的网站 是不是就没必要用https了,因为伪造不了

那可太好伪造了。你再仔细想想,没有 https(假设里面没有额外的加密),中间人是不是无所不能。

ip地址也是可以伪造的,但自己水平和见识有限想不出来可以用什么方法可以实现,问chatGPT回答我:

在常规的互联网环境中,无法直接伪造自己的 IP 地址。IP 地址是由互联网服务提供商(ISP)分配给您的,并由路由器或网络设备进行管理。这些 IP 地址是唯一且标识您在互联网上的位置。

在一些特定的情境下,如使用代理服务器或虚拟专用网络(VPN),您可以通过更改出口节点来改变显示给外部的 IP 地址。但请注意,这并不是真正的伪造 IP 地址,而是通过重定向网络流量来改变对外部的可见性。
……

伪造的是你访问站点的 IP 地址啊,比如你访问 http://223.5.5.5,中间人劫持到这个包然后不发给 223.5.5.5,而是直接返回一个包给你说,我就是 223.5.5.5,你去哪验证这个包是真的还是假的

我好像明白了,这个确实是可以做到(一般的网络设备),所以https必须要有

这个提示确实挺常见的,但应该并不是想伪造谷歌的https,而是中间人劫持了谷歌的ip地址,所以会有这样的提示

可以用上面的工具将流量proxy到socks5 走代理下载就可以了