一个IP支持多个域名HTTPS安全连接SSL

[文章] 浏览(65)  | 2019年01月02日  | 支持服务 | 
[标签]IIS

环境:IIS8.5,具有支持SNI(Server Name Indication)

假设:IIS只有一个外网IP,有两个网站 A 和 B

域名 a.cn,www.a.cn,a.net,www.a.net 指向 A 网站

域名 b.a.cn 指向 B 网站

http 自动转向 https 具体设置:IIS-> SSL设置 :勾选“要求SSL”  忽略“客户证书”

http://a.cn 自动转向 https://a.cn,http://www.a.cn 自动转向 https://www.a.cn

http://a.net 自动转向 https://a.net,http://www.a.net 自动转向 https://www.a.net

http://b.a.cn 自动转向 https://b.a.cn

SSL网站用的证书,提交到web服务器时,安全认证方式:服务器IP+端口,即同一服务器IP的443端口,只能用一个证书。

SNI标准安全认证方式:主机头+端口,即 (主机头=域名)+端口(可以同为443默认端口)

一、获取ssl证书

建议:选择阿里云免费的证书(一个ssl证书只能绑定一个域名)

在阿里云控制台:安全(云盾)->ssl证书->购买证书 

品牌:Symantec

保护类型:一个域名

证书类型:免费型 DV SSL

购买数量:3

完成购买(免费,阿里有信用,放心)后点击“SSL证书管理

未签发页签出现已购买的SSL证书,点击“申请”

填写域名等,前提是阿里云账号已通过实名认证

注意:如SSL证书和域名同是aliyun,选‘系统自动生成’,则aliyun自动在‘域名解析’中生成一条临时验证,‘下一步’验证时,自动验证并且‘签发’。

“域名验证方式”选择“文件验证”(实现容易,帮助清晰,具体验证操作省略):

  • 按假设,三个SSL证书(证书名称可能是相同的,绑定时‘查看’以保证与域名一致)分别绑定域名:a.cn,a.net,b.a.cn
  • 按提示,下载专有验证文件fileauth.txt拷贝到网站主机目录中:/.well-known/pki-validation(须在命令提示符下,md .well-known),

立即验证后(保证域名可访问,因备案未完成可能引起仅ip能访问!),下一步网站绑定中 选择SSL 注意,多个证书时可能有多个相同的“友好名称”alias

二、在IIS中导入SSL证书

从“SSL证书管理”已签发的证书中下载证书,上传到IIS主机文件夹(自己随意创建)中,解压,内含SSL证书和密码两个文件。

打开IIS-点击主机名-点击右栏IIS框中“服务器证书”,点击右上角“导入”,完成上述三个证书导入。

三、网站绑定

1、http基本绑定

类型(http),IP地址(即本机IP),默认端口(80),主机名(空,即所有http访问的域名)

2、https基本绑定

IIS8中添加的对于SNI“需要服务器名称指示”,实现同一IIS,多个域名绑定各自的SSL证书(多个SSL证书)。

类型(https),IP地址(即本机IP),默认端口(443),主机名(空,即所有http访问的域名),SSL证书(选择对应域名 a.cn 证书),因未填写主机名,不勾选“需要服务器名称指示”(即按IP和端口安全认证)。

因为多个SSL证书的名称都是alias,选择证书后,点击查看以保证域名与证书一致。

3、按域名和端口绑定

类型(https),IP地址(即本机IP),默认端口(443),主机名(域名 a.net),SSL证书(选择对应域名 a.net 证书),必须勾选“需要服务器名称指示”(即按域名和端口安全认证)。

再添加绑定:主机名:www.a.net,SSL证书(选择对应域名 a.net 证书)。

此时,完成了 A 网站四个绑定,测试成功。

4、子域名绑定

类型(http),IP地址(即本机IP),默认端口(80),主机名(域名 b.a.cn)。

类型(https),IP地址(即本机IP),默认端口(443),主机名(域名 b.a.cn),SSL证书(选择对应域名 b.a.cn 证书),必须勾选“需要服务器名称指示”(即按域名和端口安全认证)。

完成了 A 网站和 B 网站共六个绑定,测试成功。

四、http重定向https

设置301将网站地址由 HTTP 迁移到 HTTPS。Google建议url重写实现:

url重写:添加空白入站规则

名称 : HTTPS
匹配URL 模式: (.*)
添加条件:    条件: {HTTPS}  模式: off

操作类型选择:重定向
重定向URL: https://{HTTP_HOST}/{R:1}

附件说明
附件