我正在尝试开发一个代理服务器,通过在代理中设置该会话的cookie,帮助客户自动登录我的应用程序而无需密码。 这意味着如果用户使用代理访问该网站,那么他将使用该流量上设置的cookie自动登录该网站。
我已经安装了&在centos 6.8 x64上配置SQUID。 设置好所有内容后使用
request_header_add Cookie name=value
> /etc/squid/squid.conf。
Cookie设置为所有HTTP流量,但我的应用程序使用HTTPS。 所以,我尝试设置OpenSSl,ssl-bump,以及关于SSL的所有设置,包括ip表
这就是我的squid.conf的样子:
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow all
http_port 3130
http_port 3128 intercept
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=8MB cert=/etc/squid/ssl_cert/myca.pem key=/etc/squid/ssl_cert/myca.pem
request_header_add Cookie name=value all
#always_direct allow all
ssl_bump server-first all
#sslproxy_cert_error deny all
#sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 8MB
sslcrtd_children 8 startup=1 idle=1
在研究了更多之后,我还激活了ip表来转发数据包到代理进行拦截。
iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 -j DNAT --to-destination 192.2xx.xx4.xx4:3128 --dport 80
iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 -j DNAT --to-destination 192.2xx.xx4.xx4:3129 --dport 443
以上配置工作正常,没有任何HTTP流量问题 但仍然没有将Cookie标头添加到" HTTPS"交通。 我的主要动机是如果有人使用此代理而未使用设置为HTTPS标头的cookie输入登录详细信息,则登录到应用程序。
任何人都可以帮我告诉我这个任务是否可以使用SQUID在HTTPS流量上设置cookie(更改标题)。
如果可能的话,请帮我找出错误或我还有什么需要做。
提前致谢!