有没有这样的程序(中间程序):
我的程序 <--(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 端口还不是一样…… |