如何加密Squid与客户端的通讯?
- By : Will
- Category : Forward Proxy
1 前言
一个问题,一篇文章,一出故事。
笔者最近打算把正向代理用于外网的APP链接到内网使用,由于传统的客户端与反向代理服务器之间都是HTTP链接,这容易导致用户的信息泄露,于是整理此解决方案。
本章基于之前搭建的正向代理,如果你需要参阅,请参阅以下章节,
2 最佳实践
2.1 服务环境
IP Address = 10.168.0.80
Gateway = 10.168.0.1
Operating System = Oracle Linux Server 9.0
Squid Client:
IP Address = 10.168.0.x
Operating System = any
2.2 创建服务端证书
2.2.1 创建Squid需要的证书以及证书库
mkdir /etc/squid/ssl_cert/ cd /etc/squid/ssl_cert/ openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem
可见如下向导,
#... Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:GD Locality Name (eg, city) [Default City]:DG Organization Name (eg, company) [Default Company Ltd]:cmdschool Limited Organizational Unit Name (eg, section) []:cmdschool Common Name (eg, your name or your server's hostname) []:proxy.cmdschool Email Address []:will@cmdschool.org
如果需要快速执行的命令,请使用如下命令,
openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem -subj "/C=CN/ST=GD/L=DG/O=cmdschool Limited/CN=proxy.cmdschool"
然后,你需要执行以下命令,
/usr/lib64/squid/security_file_certgen -c -s /var/lib/ssl_db -M 4MB chown -R squid:squid /var/lib/ssl_db/ /etc/squid/ssl_cert/
如果遇到如下错误提示,
/usr/lib64/squid/security_file_certgen: Cannot create /var/lib/ssl_db
你需要执行如下命令解决,
rm -rf /var/lib/ssl_db
2.2.2 创建Squid客户端需要的证书文件
cd /etc/squid/ssl_cert/ openssl x509 -in myCA.pem -outform DER -out myCA.der
2.2.3 配置Squid引入证书
vim /etc/squid/squid.conf
加入如下配置,
http_port 3128 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB sslcrtd_program /usr/lib64/squid/security_file_certgen -s /var/lib/ssl_db -M 4MB acl step1 at_step SslBump1 ssl_bump peek step1 ssl_bump bump all
2.2.4 重启服务使配置生效
systemctl restart squid
2.2.5 命令行验证
openssl s_client -connect localhost:3128 --proxy localhost:3128
注:以上连接到代理并打印证书
2.3 代理客户端配置
2.3.1 导入正向代理的证书
单击Firefox的菜单【设置】
然后在查找中搜索关键字“证书”
然后单击【查看证书】->【证书机构】->【导入】
然后导入上面步骤生成的“myCA.der”证书文件并勾选【此证书可以标识网站】
单击【确定】即可完成配置
2.3.2 配置代理
单击Firefox的菜单【设置】
然后在查找中搜索关键字“网络设置”
然后单击【设置】->【手动配置代理】
填写“HTTP代理”的值,本章范例为“10.168.0.80”
填写“端口”的值,范例为“3128”
勾选【也将此代理用户HTTPS】
单击【确定】即可完成配置
参阅文档
=================
https://dev.to/suntong/about-ssl-bumping-3acf
没有评论