win2008+IIS7.5站点绑定https以及多站点使用https的实践

前几天使用Crypt::LE成功从Let’s Encrypt申请到了免费的域名证书后,决定用它将生产环境中的相应网站从HTTP升级到HTTPS。

服务器是Windows2008Server,WEB服务器使用的是自带的IIS7.5,如图:

Windows2008R2 + IIS7.5

一、为站点添加证书开启HTTPS

启动IIS管理器,在主页中找到“服务器证书”,打开在右侧操作栏中点击“导入”,选择前面申请到的域名证书,由于此前申请证书时就已针对IIS生成了pfx格式的证书,所以此处选择并导入即可。(如果申请免费的CA证书,可以阅读从Let’s Encrypt申请免费域名证书)

导入服务器证书

导入服务器证书后,选择需要开启HTTPS服务的站点,编辑绑定,添加网站绑定。网站类型选择“https”,端口填写443(默认443),最主要是选择SSL证书,选择后可以点击后面的“查看”按钮看看有没有选正确。

添加https网站绑定

绑定成功后。现在这个站点已经支持https了,可以在自己的电脑上使用浏览器测试一下。

二、让IIS7.5多个站点使用HTTPS

一般一台服务的IIS上会同时运行许多个WEB站点,每个web站点绑定http时是大多是使用主机名来识别的。比如:http://abc.com访问abc站点,http://xyz.com访问xyz站点。现在,我们也想通过https://abc.com访问abc站点,https://xyz.com访问xyz站点,通过绑定不同的主机名标识和访问不同的站点。在上一步添加站点绑定时,也许你已经发现问题了,绑定HTTPS时主机名是灰色框不可填写的。如果在另一个站点上绑定https时,会有如下提示:

IIS7.5无法通过主机名绑定不同的https域名

那么如何让多个站点实现https访问呢?方法还是有的。

一、为不同的https添加不同的访问端口。比如站点abc使用默认的443端口,站点xyz使用444端口(或其他端口,自己指定)。然后访问时通过加上不同的端口来识别:

https://abc.com/ (默认443时,无需输入端口号)

https://xyz.com:444/

二、直接修改IIS的配置文件。

IIS的配置文件一般存放在C:/Windows/system32/inetsrv/config目录,注意:由于设置了权限,需要管理员权限才能访问。找到applicationHost.config,使用管理员权限打开文本编辑器(本服务器多年前就安装的是notepad++[捂脸])后,再打开applicationHost.config。

IIS配置文件applicationHost.config

本文以notepad++修改applicationHost.config配置为例。

(1)查找“443”,找到之前添加成功的abc.com的绑定记录,并在“443:“后面添加需要绑定的主机名,可以参考http的绑定格式。如图:

在iis配置文件里添加要绑定的https主机名

(2)翻找待添加xyz站点,在它对应的http配置条目下新增一行https配置条目,并修改绑定域名为xyz.com。如图:

新增一个https绑定条目

(3)保存配置文件。注意如果不是用管理员权限打开的话是无法保存成功的,也不建议用系统自带的文本编辑器编辑,可能会因字符编码造成问题。

操作建议:先使用方法一为需要https的站点使用不同的端品做好绑定。然后用方法二把每个https站点的端口改回443并在后面添加上不同的主机名(域名)。

举报
评论 0