有没有什么程序可以把客户端 HTTP 请求“包装”成 HTTPS 请求发给网站的?

2019-07-11 17:57:39 +08:00
 user0506

有没有这样的程序(中间程序):

我的程序 <--(HTTP 协议)--> 中间程序 <--(HTTPS 协议)--> 任意目标网站

比如自己向 localhost:80 发送 GET / HTTP/1.1\r\nHost: www.baidu.com ,中间程序可以把原先的 HTTP 请求包装成 HTTPS 并且原样发给目标网站,有这样的程序吗?

部署的程序目前只做了 HTTP 支持,要加 HTTPS 的话又得等好久上线,这样的中间程序平台不限,Windows/Linux/Mac 都可以,任务太重,本来原本不是我负责的,我也一点都不了解这部分,现在头都大了,求指教。

3930 次点击
所在节点    程序员
28 条回复
msg7086
2019-07-11 23:01:01 +08:00
@ziseyinzi 你说得没错啊。楼上哪里理解错了么。
这明显就是一个 Nginx 解决的事情呀……
yulon
2019-07-12 05:02:26 +08:00
说 CONNECT 的想什么呢,CONNECT 是 HTTPS 对 HTTPS 的,连接建立之后就是纯到不能再纯的 TCP 流了,又不会把 HTTP 转换成 HTTPS。

这种直接用中间程序代理 HTTP 请求,然后自己用 HTTPS 请求,再把响应的数据传回去就行了,根本不用管什么 CONNECT,又不会接收到 HTTPS 请求,怎么可能会出现 CONNECT。
Hackerl
2019-07-12 08:23:18 +08:00
stunnel
wnpllrzodiac
2019-07-12 08:30:53 +08:00
服务端的话,套个反代就好了,你是客户端。nginx https 前向代理?本来想做的,觉得挺麻烦的。我的用户不能访问国外网站,我就让他们机器上的客户端请求发到我的本地机器(支持国外网站)。我的机器再转发到国外。前段时间由于一些原因,只能套 cf https 访问了。我就不好搞了。nginx https 前向不大好搞
neroxps
2019-07-12 08:42:56 +08:00
楼主的意思是你访问任意 http 网站的时候,发出去的内容其实是 https ???而原来的网站其实还是 http ???能这样玩吗?注意是任意网站,任意网站的意思是他并没有服务器的管理权限喔。意思是对方网站没有提供 https 服务你也可以使用 https 向其访问???没这种东西吧?
krixaar
2019-07-12 09:39:12 +08:00
@neroxps 那就再加个中间层:客户端<=HTTP=>代理 1<=HTTPS=>代理 2<=ANY=>任意网站 XD
oukichi
2019-07-12 10:03:40 +08:00
https 端口是 443 ……你再怎么包装发到 80 端口还不是一样……
neroxps
2019-07-12 10:10:56 +08:00
@krixaar 这样有什么意义,楼主是不是在问某个不可描述的软件啊?哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX