很多地方都有免费的SSL证书,闲着没事,发挥折腾帝的功力搞了几个证书,现在用的Linux配置起来很简单,但万一以后放弃Linux的话,在Win上就会很郁闷。

在IIS 8(对应的系统是Windows Server 2012)以前的版本是不能一台服务器绑定多个证书的,网上流传的修改配置文件加入主机头的方法根本不行,不论windows 2003还是2008 R2都不行,除非用的是通配符证书,但那样依然没什么实际意义,能用的起通配证书的人也不至于非要挤死在一个节点上。

而且我证实了另一点,一台服务器上配置多个IP,每个SSL站点独立IP的方法依然不行!网上流传的都是人云亦云瞎扯淡!

在IIS 8以前的版本里面,IIS的核心文件http.sys本身就不支持一个端口多个证书,难道网上这些人比微软还了解IIS?反正我不信,只能借助外力了。

今天折腾了一天总算搞定了。想了一下,大概有至少2个方案,今天写方案一。

 

下面是方法:

大体思路是这样,首先我测试通过了不同端口可以使用不同证书,然后用一个能够在Windows上支持多SSL站点的反向代理服务器来构成一个前端,这样就ok了。这样的体系下来,能选择的很少了,squid目前比较稳定的for windows版本是很多年前的,而且据说对SSL支持比较鸡肋,我就没敢瞎忙活,然后nginx本身就不怎么样,for windows的版本很垃圾,目前我能想到的就是apache了。

但是这里我依然要吐槽!网上流传的windows+apache进行ssl反向代理的文章,几乎100%都是错的,按那些去搞永远无法运行,害得我白忙活了几个小时。

下面写一下我的配置吧。

我这用的是apache 2.4,官网那几个链接下载回来的,系统环境通过的是win 7和win 2008 R2,理论上win 2003也可以的(但是需要下载vc11以前的编译版本),懒的测试了,因为2003和2008需要搞不同的apache,因为用vc 2015编译的apache无法运行在2003上。

首先加载几个模块:

然后记得把Listen 80注释掉,因为只打算用apache来做个ssl代理,如果不关掉80的话,会跟iis冲突。

然后打开iis管理器,导入需要的证书,给每个站点绑一个不同的ssl端口,证书选择对应的。我这里www.tingtao.net绑的是102端口,it.tingtao.net绑的是103端口。

apache的虚拟主机配置:

里面证书路径和端口什么的自己做对应修改就可以了。启动apache,一切就ok了。

 

Share

9 thoughts on “在Windows Server 2003/2008/2008 R2上配置多个站点SSL证书(一)

  1. 想问一下,为什么在windows server 2008 r2上安装了apache2.4,不引用Include conf/extra/httpd-ssl.conf就不会报错,一引用就无法启动apache,请问有什么需要修改的吗?

      1. 按你说的,很简单就实现,实际是不是还有很多基础配置?
        开启SSL之后就报下列错误,解决完下列错误又有其它错误,不知道是否有很多基础要配置?
        The Apache service named reported the following error:
        >>> SSLCertificateKeyFile: file 'C:/Apache24/conf/server.key' does not exist or is empty .

        1. 这个日志不完全,我估计后面说的是两种情况,要么这个证书文件不存在,要么证书文件错误。

          我好像有个印象,默认配置的那个ssl站点好像有几个选项要屏蔽掉。

          把我的给你,你照着修改吧。我记得是2.4.x的,理论上通用:
          http://dl.35bl.com/tmp/tmp_apache.rar
          临时文件,想起来就删了,从速下载.

发表评论

电子邮件地址不会被公开。 必填项已用*标注