我一直在使用apache反向代理(不够强大)升级我的networking到configuration为反向使用的Squid代理。
我的鱿鱼代理是在一个CentOS 6虚拟机,目前运行在我的预先存在的Apache代理 – 所以我仍然有鱿鱼端口3128运行。
我在/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证书。 昨天晚上,我设法得到一个成功的configuration,以完全正常工作的HTTPS连接到我的域名之一。
我在HTTP设置之前添加了这个configuration:
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
完全encryption。 由于其中一个选项(试验和错误 – 不记得是哪个),它解密数据包,并将HTTPS请求指向正确的VM。 虚拟机已经安装了SSL证书,因此可以识别HTTPS请求,整个页面加载从开始到结束都被encryption。
我可以访问https:// www.domain2.com,它会说连接被部分encryption,并且会显示证书错误,证书是www.domain1.com
但是,今天这确实干扰了到domain1的HTTP连接,而且我的浏览器正在说这个页面正在以一种永远不会完成的方式被redirect。
我已经从configuration文件中删除了整个SSL连接configuration,而且我只运行标准的HTTP。
有什么办法可以让https:// www.domain1.com读取cert domain1.crt并直接访问domain1的虚拟机,https:// www.domain2.com读取cert domain2.crt并直接访问domain2的虚拟机?
对不起,这么长的问题,但它是一个非常具体的问题,我一直在尝试尽可能多的信息。
谢谢
鱿鱼不支持这里写的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版本可见。 (请看这里和这里 )