IIS 7 并不支持为不同域名绑定不同的证书。解决方法就只有两个了,一是升级 IIS 8,二是重新申请一个通配的泛域名 SSL 证书。
升级 IIS 8 也不是一件简单事,因为目前的 IIS 7 是在 Windows Server 2008 R2 Enterprise 上面跑的,如果想升级到 IIS 8,则需要把服务器也升级到 Windows Server 2012,这相当于重装服务器的系统。
通配泛域名 SSL 证书在阿里云上的定价也不便宜。
于是抱着试一试的心态找了找免费的证书颁发机构,结果有心栽花花不开,无心插柳柳成荫,还真让我找到了一个。
Let's Encrypt
『Let's Encrypt』是国外一个公共的免费 SSL 项目,由 ISRG 联手组成证书颁发机构,可以签发免费 SSL/TLS 证书。ISRG(Internet Security Research Group,互联网安全研究小组)是一个关注网络安全的公益组织,其赞助商从非商业组织到财富 100 强公司都有,包括 Mozilla、Akamai、Cisco、Facebook、University of Michigan 等等。
『Let's Encrypt』是为普及 HTTPS 而发起的,它推动了基础 DV SSL 证书的普及。其证书已经被 Mozilla、Google、Microsoft 和 Apple 等主流浏览器支持,只需要 Web 服务器配置好 HTTPS 证书,浏览器会在加载时验证 Web 服务器 HTTPS 证书是否有效。随着 HTTPS 的普及,『Let's Encrypt』目前已成为全球最受欢迎的免费 SSL 证书签发机构。
『Let's Encrypt』的优点有两个:完全免费,避免 ISP 劫持;申请速度快、无需注册账户。
但是有两点也需要注意:
- 『Let's Encrypt』的基础 DV SSL 证书,只提供了数据加密,不验证身份,无法向用户证明网站的所有者。但即使这样也满足了基本需要了。
- 『Let's Encrypt』一次只会颁发 3 个月有效期的证书,到期之后需要自己再续上(仍然是免费的)。
既然有了可以免费使用的 SSL 申请机构,那就申请这个免费的泛域名 SSL 证书吧。
Cerbot
『Let's Encrypt』官网引导我们进入『Certbot』进行操作。
不过十分尴尬的是,我看了半天不知如何下手,然后上网查了一圈发现,大神们都是用代码命令来完成这个繁琐的操作的,让我望而却步。
Certify
绝望中又找到了一个可以获取『Let's Encrypt』免费 SSL 证书的软件 —— 『Certify』。
『Certify』是一个可以自动续订『Let's Encrypt』颁发证书的第三方 GUI 软件,使用它可以自动配置、创建和自动续订证书,并且到快要续订的时候会自动发邮件通知我们。
看到没看到没?它说 GUI!图形用户界面!简直小白福音了好吗?
首先将『Certify』下载到服务器上并安装,注意其依赖 Microsoft .NET Framework 4.5,安装时可能会收到相关提示。
第一次启动程序时会弹出对话框让我们填写个邮箱地址,等证书快要过期的时候我们会收到续订证书的提醒邮件。
然后进到主界面点击左上角的「新建证书」,在「Certificate Domains」中,『Certify』会自动扫描 IIS 中的站点,选择我们要申请证书的域名,在「添加域名」一栏中填写泛域名,即「*.free.com」。
点击「ADD DOMAINS」,然后『Certify』就会弹出以下提示:
点击确定后,就可以看到下方「要包含的域名或子域名」中出现了「*.free.com」和「free.com」。
然后点击右方「Authorization」中修改「Authorization Settings」中的「验证类型」为「dns-01」,并选择「DNS Update Method」为「(Update DNS Manually))」。
这一步我本来想选的是「Aliyun (Alibaba Cloud) DNS API」,因为阿里云毕竟在国内,升级的话总会方便一点,但是发现选择这一项后它要求我填写「DNS Zone Id」,由于不知道这一项怎么填写,所以我还是选了「(Update DNS Manually)」。
然后就可以点击「请求证书」了。
但是,可能会发现遇到 Pause 的情况,这时候就会收到邮件,域名解析需要添加两条 TXT 记录,收到邮件后在阿里云管理控制台中填上去了再次请求证书,就通过了。
待其执行完毕后,返回『Certify』的首页面可以看到站站点已经成功使用了『Let's Encrypt』的证书了。
这时候打开『Internet信息服务(IIS)管理器』就会发现,『Certify』已经自动帮我们绑定好证书了,真是太人性化了,最后再打开 HTTPS 的网站查看一下,正常打开,完美。
SSL For Free
不想下载软件的可以尝试一下『SSL For Free』这个网站,它也是一个可以获取『Let's Encrypt』免费 SSL 证书的网站。
虽然是全英文的网站,但『SSL For Free』这个网站对于小白的我来说已经是非常友好了,首先填写好泛域名,比如我要申请几个类似「*.free.com」的域名,则需要在上方填写「free.com *.free.com」,即需要在输入框输入根域名空格再输入“*.域名”。
与上面步骤类似,域名解析需要添加两条 TXT 记录,进入阿里云管理控制台添加即可。
Something Else...
- 证书需要推送到「负载均衡(SBL)」中,在阿里云的管理控制台中将其推送即可。
- 在 Windows「运行」中输入
mstsc
可远程连接服务器桌面。
-
在 Windows 服务器「运行」中输入
iisreset /stop
以停止 IIS 服务。 -
在 Windows 服务器「运行」中输入
iisreset /start
以启动 IIS 服务。