单IPVPS配置多个SSL站点

本文共被喵星人侦察过12,387次。。。

最近在VPS上已经搭建了一个自用的Glype翻墙,为了避免被GFW我就配置了一个StarSSL,用HTTPS访问。最近闲着没事儿我又想给我的iLazyCat.com的一个子域名也配置一个SSL,但是弄的时候却发现,貌似不能配置两个SSL证书,无论怎么配置都只有一个证书,分别访问两个域名总有一个提示域名不匹配,喵了个咪的~这就达不到我想要的效果了。。。Google一番才发现,SSL证书貌似只支持一个IP地址绑定一个证书,不能在同一个IP地址上面给不同的域名分别配置SSL证书。。。除非去购买多域名专用的证书。。。不过我查了下,多域名的证书都贵的要死要活的,低成本才是我的目标~

Https

于是乎,经过另外一番Google,终于发现了这个在单一IP地址上面可以配置多个域名SSL证书的方法,嘻嘻。。。

首先科普。。。

SSL协议层位于HTTP协议层之下,HTTP协议是被封装在SSL协议中的,所以SSL会话必须在HTTP会话之前建立。因为在建立SSL会话的最初握手阶段,服务器无法知道HTTP请求头的Host字段的内容,也就无法确定究竟使用哪个虚拟主机的配置(例如允许使用哪些加密算法、服务器证书是哪个等等),于是Apache就会使用匹配这个IP地址端口对的第一个主机的SSL配置。

正因为如此,我们便不能在一个IP地址上配置不同的SSL证书。。。

但是真的只能这样了么?OH当然不是。。。Apache从2.2.12之后就开始支持SNI了。。。如果你的Apache版本在2.2.12以下的话,就去更新一下吧。更新完了我们继续~关于SNI的信息可以到这里找到。。。

确认Apache版本在2.2.12以上之后,就可以开始配置多个SSL证书了。

首先修改Apache的配置,开启SNI和分域名分配主目录。。。阅读全文。。。