文章目錄
Squid Proxy Https 設定
依據之前筆記 安裝 Squid Proxy 比照相同方式設定 https 的 request 無法取得正確回應
以下設定方式直接套用,會出現錯誤
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 443 -m owner --uid-owner squid -j RETURN
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
測試了幾個做法,發現很容易查到錯誤設定方式,立馬自行紀錄一下
基本環境說明
- Azure VM 標準 B2s (2 vcpu,4 GiB 記憶體)
- CentOS 7.7
- Squid 3.5.20
錯誤訊息
無法直接存取 https 的頁面
訊息內容
curl: (35) SSL received a record that exceeded the maximum permissible length.
錯誤截圖
設定方式
建立憑證
mkdir -p /etc/squid/cert/ cd /etc/squid/cert/ openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem openssl x509 -in myCA.pem -outform DER -out myCA.der
初始化憑證資料夾
/usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db chown -R squid /var/lib/ssl_db
沒有初始化的錯誤
錯誤訊息
The ssl_crtd helpers are crashing too rapidly, need help!
錯誤截圖
修改 config
vi /etc/squid/squid.conf
加上以下設定
acl step1 at_step SslBump1 acl step2 at_step SslBump2 acl step3 at_step SslBump3 ssl_bump stare step2 ssl_bump bump step3 sslproxy_cert_error allow all https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/cert/myCA.pem key=/etc/squid/cert/myCA.pem sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
iptable 設定
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 443 -m owner --uid-owner squid -j RETURN iptables -t nat -A OUTPUT -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3130
設定成功
心得
squid 的 https 設定難度高上許多,主要是憑證這段我不懂,東卡西卡的,遇到錯誤也不知道怎麼解決,所幸勤能補拙,總算試出個方式,雖然不了解其中涵意,就待日後機緣到了,相信會懂的XD
另個問題是 squid 不支援 https 與 http 的互相轉換,在使用上還是有限制 (內網都只有 http 但外部連結都只提供 https),透過 nat 的 tranparent proxy 攔 https request 就只能用 https 轉發,這個問題就留到下篇筆記囉
參考資訊
文章作者 Yowko Tsai
上次更新 2020-12-11
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。