最新消息:本站网址改为www.tingtao.org

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

VPS/服务器 听涛 8浏览 0评论

很多地方都有免费的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端口,www.tingtao.org绑的是103端口。

apache的虚拟主机配置:

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

 

补充:

很多朋友索要配置文件,干脆贴出来吧,其中有些模块什么的按道理说并不必须,但我有其他用途,所以没再测试了,下面的配置可以正常运行,但如果有些模块各位用不上的话,可以自行测试并屏蔽之:

虚拟主机的配置上文中已有,就不必再发了。

路径么,我这的apache目录是c:\service\apache,可能各位需要对应修改;我用的版本是2.4.x(小版本号忘记了),配置文件与32/64位无关,同时应该所有2.4这个大版本都可以用下面这个配置文件的。

源文件下载:httpd.conf httpd-vhosts.conf

去掉注释的httpd.conf :

 

转载请注明:听涛IT站 » 在Windows Server 2003/2008/2008 R2上配置多个站点SSL证书(一)

Share
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (14)

  1. 麻烦再发一下配置文件,谢谢
    sean5个月前 (11-22)回复
    • 放在文中了
      听涛5个月前 (11-25)回复
    • 开始完善这里 http://it.tingtao.net/server-template
      听涛5个月前 (11-25)回复
  2. 想问一下,为什么在windows server 2008 r2上安装了apache2.4,不引用Include conf/extra/httpd-ssl.conf就不会报错,一引用就无法启动apache,请问有什么需要修改的吗?
    26mb6个月前 (10-14)回复
    • 出错可能性有很多,要看具体报错内容的
      听涛6个月前 (10-15)回复
      • 按你说的,很简单就实现,实际是不是还有很多基础配置? 开启SSL之后就报下列错误,解决完下列错误又有其它错误,不知道是否有很多基础要配置? The Apache service named reported the following error: >>> SSLCertificateKeyFile: file 'C:/Apache24/conf/server.key' does not exist or is empty .
        26mb6个月前 (10-16)回复
        • 这个日志不完全,我估计后面说的是两种情况,要么这个证书文件不存在,要么证书文件错误。 我好像有个印象,默认配置的那个ssl站点好像有几个选项要屏蔽掉。 把我的给你,你照着修改吧。我记得是2.4.x的,理论上通用: http://dl.35bl.com/tmp/tmp_apache.rar 临时文件,想起来就删了,从速下载.
          听涛6个月前 (10-17)回复
          • 包含默认站点和自己的虚拟主机站点
            听涛6个月前 (10-17)
          • 谢谢
            26mb6个月前 (10-18)
  3. https://127.0.0.1:103/ 是不是还要配一次证书?
    facekiss7个月前 (09-23)回复
    • 是的
      听涛7个月前 (09-28)回复
  4. 成功了,感谢!
    szy9个月前 (08-07)回复
    • 请教一下,怎么配置文件
      mark1个月前 (03-11)回复
      • 文中很详细
        听涛1个月前 (03-21)回复