有没有这样的程序(中间程序):
我的程序 <--(HTTP 协议)--> 中间程序 <--(HTTPS 协议)--> 任意目标网站
比如自己向 localhost:80 发送 GET / HTTP/1.1\r\nHost: www.baidu.com ,中间程序可以把原先的 HTTP 请求包装成 HTTPS 并且原样发给目标网站,有这样的程序吗?
部署的程序目前只做了 HTTP 支持,要加 HTTPS 的话又得等好久上线,这样的中间程序平台不限,Windows/Linux/Mac 都可以,任务太重,本来原本不是我负责的,我也一点都不了解这部分,现在头都大了,求指教。
1
lower 2019-07-11 18:00:57 +08:00
我怎么觉得用反向代理能搞定呀?
|
2
ysc3839 2019-07-11 18:02:34 +08:00 via Android
nginx
|
3
WuwuGin 2019-07-11 18:03:15 +08:00
cd (删除) n 吧,cloudflare 这种就有这个功能,不知道国内谁支持
|
4
chinesestudio 2019-07-11 18:06:06 +08:00 via Android
https 反代 http 这个容易 反过来没有试过
|
5
RickyC 2019-07-11 18:08:52 +08:00 via iPhone
可以看一下阿里云的 CDN,把一个域名指向到源站
然后可以设置成 https,也可设置 http 自动跳转至 https 阿里云有免费的 https 证书,有效期 1 年 |
6
xeaglex 2019-07-11 18:14:32 +08:00 via Android
去了解下 CONNET 方法的代理原理吧
|
7
annielong 2019-07-11 18:14:36 +08:00
应该也算中间人攻击吧,等于伪造目标网站的证书,然后和目标网站通讯
|
8
reus 2019-07-11 18:15:52 +08:00
都不知道你想做什么
是想给只支持 HTTP 的后端加上 HTTPS ?那配置 nginx 提供 https,然后以这个 http 做上游就行了,你想出的那个方案,我不知道用来干嘛的。 HTTPS 代理只能包装”连接“,用 OPTION 方法,不能代理”请求“,因为 https 本来就是用来防止中间人攻击的,不可能拆分成“请求” |
9
reus 2019-07-11 18:21:59 +08:00
修正 "OPTION" 方法,CONNECT 方法
|
10
nomaka 2019-07-11 18:28:28 +08:00 via iPhone
stunnel
|
11
ipwx 2019-07-11 18:28:35 +08:00
Squid 大概行,但是我没配置过。
|
12
Destiny97 2019-07-11 19:00:42 +08:00 via Android
阿里云的 cdn 支持,其他 cdn 不清楚
|
13
zado 2019-07-11 20:59:22 +08:00
Nginx 可以,用 Nginx 代理一下就可以了。
|
14
twl007 2019-07-11 21:01:35 +08:00 via iPhone
https 转 http 都可以的好么
|
15
greatghoul 2019-07-11 21:07:13 +08:00
腾讯云云函数配置 api 网关就可以。
|
16
greatghoul 2019-07-11 21:08:16 +08:00
|
17
ziseyinzi 2019-07-11 21:26:13 +08:00 via Android
我感觉楼上都理解错了……楼主的意思是他写的客户端只做了 http 没做 https,然后现在想粗暴地加上 https 功能?
|
18
runtu2019 2019-07-11 21:53:14 +08:00
Nginx 可以正向代理的,监听 80 端口,proxy_pass 参数手动改为 https 试试!
本来是想着叫你用 python flask+requests 自己写个脚本的,反正也不怎么费事 |
19
gamexg 2019-07-11 22:14:27 +08:00
nginx 等都应该能够做到,
不行的话自己写个程序,如果不考虑 WebSocket 等协议支持的话不算难。 |
20
Tomorr 2019-07-11 22:18:26 +08:00
|
22
yulon 2019-07-12 05:02:26 +08:00
说 CONNECT 的想什么呢,CONNECT 是 HTTPS 对 HTTPS 的,连接建立之后就是纯到不能再纯的 TCP 流了,又不会把 HTTP 转换成 HTTPS。
这种直接用中间程序代理 HTTP 请求,然后自己用 HTTPS 请求,再把响应的数据传回去就行了,根本不用管什么 CONNECT,又不会接收到 HTTPS 请求,怎么可能会出现 CONNECT。 |
23
Hackerl 2019-07-12 08:23:18 +08:00 via Android
stunnel
|
24
wnpllrzodiac 2019-07-12 08:30:53 +08:00 via Android
服务端的话,套个反代就好了,你是客户端。nginx https 前向代理?本来想做的,觉得挺麻烦的。我的用户不能访问国外网站,我就让他们机器上的客户端请求发到我的本地机器(支持国外网站)。我的机器再转发到国外。前段时间由于一些原因,只能套 cf https 访问了。我就不好搞了。nginx https 前向不大好搞
|
25
neroxps 2019-07-12 08:42:56 +08:00
楼主的意思是你访问任意 http 网站的时候,发出去的内容其实是 https ???而原来的网站其实还是 http ???能这样玩吗?注意是任意网站,任意网站的意思是他并没有服务器的管理权限喔。意思是对方网站没有提供 https 服务你也可以使用 https 向其访问???没这种东西吧?
|
27
oukichi 2019-07-12 10:03:40 +08:00
https 端口是 443 ……你再怎么包装发到 80 端口还不是一样……
|