我一直在升级我的网络,从使用apache反向代理(不够强大)升级到只为反向使用而配置的Squid代理。
我的squid代理是在CentOS 6VM上运行的,目前运行在我预先存在的apache旁边,所以我仍然在端口3128上运行squid。
我在我的/etc/squid/squid.conf中有这个设置,
http_port 3128 accel vhost
visible_hostname squid
cache_peer 192.168.0.13 parent 80 0 no-query originserver name=server1
cache_peer_domain server1 www.server1.com server1.com
cache_peer 192.168.0.14 parent 80 0 no-query originserver name=server2
cache_peer_domain server2 www.server2.com server2.com
cache_peer 192.168.0.15 parent 80 0 no-query originserver name=server3
cache_peer_domain server3 www.server3.com server3.com
http_access allow all这对于所有的HTTP连接都是完美的。
它指示
www.server1.com:3128至
192.168.0.13:80我一直试图为这三个域中的两个实现SSL证书。昨晚,我设法获得了一些成功的配置,一个完全工作的HTTPS连接到我的一个域。
我在HTTP设置之前添加了这个配置:
https_port 443 accel ssl-bump transparent vhost cert=/usr/ssl/CA/server1.crt key=/usr/ssl/CA/server1.key
cache_peer 192.168.0.12 parent 443 0 no-query originserver login=PASS ssl sslflags=DONT_VERIFY_PEER name=server1_ssl
cache_peer_domain server1_ssl ssl www.server1.com server1.com昨晚似乎没问题。它会连接到
https:// www.domain1.com完全加密。由于其中一个选项(尝试和错误-不记得哪一个),它解密数据包,并将HTTPS请求定向到正确的VM。VM已经安装了SSL证书,因此将识别HTTPS请求,并且从开始到结束对整个页面量进行了加密。
我可以访问https:// www.domain2.com,它会说连接是部分加密的,并且会显示一个证书错误,即证书是用于www.domain1.com的。
然而,今天,这确实干扰了到domain1的HTTP,我的浏览器说页面被重定向的方式永远不会完成。
此后,我从配置文件中删除了整个SSL连接配置,并且只运行标准HTTP。
有什么方法可以让https:// www.domain1.com读取cert domain1.crt和直接到domain1's VM,https:// www.domain2.com读取cert domain2.crt并直接读取domain2 2‘S VM?
很抱歉有这么长的问题,但这是一个非常具体的问题,我一直在努力提供尽可能多的信息。
谢谢
发布于 2014-10-21 08:11:19
Squid不支持SNI编写的这里。所以有了鱿鱼:
https://server1.com (cert for server1.com) => http://mylanip1
https://server2.com (cert for server2.com) => http://mylanip2你必须:
https_port server1.com:443 cert=/etc/ssl/server1.pem vhost
https_port server2.com:443 cert=/etc/ssl/server2.pem vhost
cache_peer mylanip1 parent 80 0 name=lanip1 no-query originserver
cache_peer_domain lanip1 server1.com
cache_peer mylanip2 parent 80 0 name=lanip2 no-query originserver
cache_peer_domain lanip2 server2.com如果您在具有通配符证书的域的子域上有服务器(例如s1.myserver.com、s2.myserver.com、*.myserver.com证书),情况会更好。那么您可以只使用一个https_port条目。
https_port 443 cert=/etc/ssl/wildcard.myserver.com.pem vhost所以在乌贼身上是有可能的。
但是这种简单的情况对于httpd和基于名称的虚拟主机来说要容易得多。你将拯救一个公共IP。在Centos 6中,openssl和httpd版本支持SNI。从openssl版本中可以看到它。(见这里和这里)
https://serverfault.com/questions/555582
复制相似问题