HTTPS 代理假设笔记
作者:互联网
众所周知的原因,想要上外网,需要一些特别的设置。
专用的工具增加了学习成本,而且老是被干掉,所以这个周末探索了一下使用通用技术来达到目的。目前看来,这个方案的最大问题,可能就是没法设置账号密码了;个人用的话,IP 是天然加密手段吧。
原理
浏览器的所有请求,都会通过 https 加密通道转发到服务器,然后由服务器帮你完成请求并返回结果。
https 加密通道包括了:本地的 https 代理客户端、https通道服务器端(请求在服务器本地转发给 proxy)、服务器端的 proxy
工具
代理可以用 tinyproxy,或者 squid。这两个工具都是多协议转发的,这次主要是尝试了 tinyproxy。
https 通道一般使用 stunnel 来建立。
浏览器上,可以用 SwitchyOmega。
过程记录
1. 程序安装,CentOS7 和 Debian 都试了。Debian 系列实际安装的是 stunnel4;CentOS 可能要添加额外的源。
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo rpm -Uvh epel-release-latest-7*.rpm
2. 配置开机自启动
3. 配置软件
Tinyproxy 配置文件: /etc/tinyproxy/tinyproxy.conf
主要需要关注的是端口,还有 Allow 项,我们只需要本地访问,目前啥也不用改。
Stunnel 配置文件:/etc/stunnel/stunnel.conf
一个简单的配置如下(端口配置 80,是为了直接用 python 临时搭的 http 服务来进行测试):
; Enable FIPS 140-2 mode if needed for compliance ; The pkcs11 engine allows for authentication with cryptographic ; ***************************************** Example TLS client mode services ; TLS front-end to a web server [https] accept = 443 connect = 127.0.0.1:80 cert = /etc/stunnel/7656971_ss.xxxx.com.pem key = /etc/stunnel/7656971_ss.xxxx.com.key ; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SChannel ; Microsoft implementations do not use TLS close-notify alert and thus they ; are vulnerable to truncation attacks TIMEOUTclose = 0
奥,对了,上面用的 pem 和 key,是在阿里云上免费申请来的。
4. 防火墙
redhat 上防火墙打开端口:
firewall-cmd --zone=public --add-port=8888/tcp --permanent firewall-cmd --reload
5. 测试
测试能不能穿过防火墙,以及创建连接,可以用: telnet ip 端口
标签:key,HTTPS,--,假设,stunnel,etc,笔记,https,tinyproxy 来源: https://www.cnblogs.com/pied/p/16183190.html