在阿里云的IIS上配置https
2018-06-21 本文已影响122人
danejahn
微信小程序的API必须使用https,以下就是一篇简易的配置文章。
服务器环境
Windows Server 2008 R2 Enterprise x64, IIS7
SSL证书
因为我的服务器在阿里云上,我就先在阿里云上找SSL证书的服务,控制台-安全(云盾)-SSL证书(应用安全)里,但不是免费的。于是我就四处瞎找,最后在控制台-域名与网站-域名里,发现可以在自己的域名上申请免费的SSL证书。下图中点SSL证书:
![](https://img.haomeiwen.com/i1403293/6cadef562c41fb34.png)
在这里面选单域名免费证书,随后配置你的域名,并提交:
![](https://img.haomeiwen.com/i1403293/b6287ed352ed5da8.png)
下面就进入审核阶段,没什么问题的话,三五分钟就审核完成了。
![](https://img.haomeiwen.com/i1403293/2b55077c9748d9fe.png)
等审核完毕,就可以在SSL证书-我的证书中查到:
![](https://img.haomeiwen.com/i1403293/6517dc8e734ffb8d.png)
域名解析
将域名解析到目标服务器上
![](https://img.haomeiwen.com/i1403293/02778a58b1d96018.png)
IIS配置
接下来,我们在服务器中配置我们生成好的证书。
在SSL证书-我的订单中选择下载,跳转到下载证书页面,这块的文档写的比较详细,包括证书导入、分配服务器证书的说明。
![](https://img.haomeiwen.com/i1403293/05480b5fa7cf288f.png)
这里有两点要注意的
- 导入证书时,要输入密码,密码就在
pfx-password.txt
这个文件中。 - IIS7选https时,主机名无法填写
image.png
需要在C:\Windows\System32\inetsrv\config\applicationHost.config
手动配置一下。
找到这行
<binding protocol="https" bindingInformation="*:443:" />
在443后填上主机名
<binding protocol="https" bindingInformation="*:443:s.wogan.com" />
- 如果要配置多个证书
IIS7中需要通过端口好的方式配置多个证书,如下:
<binding protocol="https" bindingInformation="*:5001:s1.wogan.com" />
不过这个需要你手动配置C:\Windows\System32\inetsrv\config\applicationHost.config
IIS配置好了之后,就可以通过https访问了。
TLS版本的问题
微信小程序需要TLS1.2及以上的版本。
但是我们服务器只支持TLS 1.0,这个可以在https://www.ssllabs.com/ssltest/上测试。我们服务器测试结果如下。
![](https://img.haomeiwen.com/i1403293/1b1324062b6bd893.png)
不支持TLS 1.2。
需要下载一个工具https://www.pianyissl.com/support/page/60。
点击Best,确保TLS1.2是勾选的,然后在选择Apply,完成后需要重启一下服务器。
![](https://img.haomeiwen.com/i1403293/2be7e6018fd3579b.png)
最后,就可以正常的访问https的API了。