当前位置:C++技术网 > 资讯 > 教你分分钟实现IIS服务器支持https

教你分分钟实现IIS服务器支持https

更新时间:2017-08-02 15:24:29浏览次数:1+次

        为了网站数据安全的需要,我需要使用SSL来加密通信。

        SSL加密通信的大致思路是这样的:

        SSL可以实现通信数据加密、信息校验和身份校验。SSL运行在http协议的下层,所以你写的http层程序不需要管加密的事情,只需要配置好SSL就可以了。支持了SSL后的HTTP也就是HTTPS了。通信数据加密很好理解,也就是把明文传输的内容加密传输,而信息校验则是方式中途被人篡改,而身份校验则可以对拦截者伪装。具体的SSL机制,请参考《从 HTTP 到 HTTPS - 什么是 HTTPS》。

        服务器存储了一个事先准备好的数字证书。这个证书需要事先去证书管理机构申请,这个机构叫做CA。数字证书有免费和收费的,选择免费或是收费,根据你的需要来吧。收费的就不说了,免费的推荐使用 Let's Encrypt 。这个网站是英文的,如果你英语水平不错,可以看看。但很多人可能也没有耐心看。所以我来简化一下获取数字证书的流程吧。

        获取证书以及部署证书,都可以通过一个程序来完成,即 letsencrypt-win-simple  ,点击此链接进入就可以进入git下载页面,下载 letsencrypt-win-simple.V1.9.4.zip 。这个zip文件就是可执行程序文件,你可以直接点击zip这个链接下载。不过可能下载速度有点慢,所以我这里提供一个C++技术网的网盘下载地址:http://pan.baidu.com/s/1kVcbe4n 提取码:htsi

        注意,网盘里提供的是1.9.3正式版,而1.9.4则是测试版,正式使用建议使用正式版。

        将这个压缩包解压,上传到IIS所在的服务器,双击运行“letsencrypt.exe”即可。

        此程序运行时会申请证书,会配置iis,基本上简单交互处理完后,iis就支持https了。下面说详细的操作过程。

    1.解压后的文件如下:

    解压后的文件如下

    2.双击启动letsencrypt.exe,出现:

    双击启动letsencrypt.exe

    3.输入你的邮件地址,必须是有效的邮件地址,否则程序就直接退出了。输入后回车确认,然后提示是否同意一个协议,给了一个pdf文件的地址。安装软件时都有一个协议的。所i有我们输入y,然后回车表示同意协议。

    输入你的邮件地址,必须是有效的邮件地址,否则程序就直接退出了。输入后回车确认,然后提示是否同意一个协议,给了一个pdf文件的地址。安装软件时都有一个协议的。所i有我们输入y,然后回车表示同意协议。

    4.如果你的电脑没有配置iis,程序就直接退出了。如果有iis并且配置过了网站,那么此时程序就会扫描iis并列出网站列表。并提示选择。如下图所示:

    如果你的电脑没有配置iis,程序就直接退出了。如果有iis并且配置过了网站,那么此时程序就会扫描iis并列出网站列表。

    5.如果你只是想配置其中一个网站,那么选择上面的数字序号,然后回车就可以了。WFMA选项是手动安装配置的,会比较麻烦。当我们选择了一个序号,如4,回车。后续会提示一个选择,是让你选择是否需要自动更新证书的。因为证书是有有效期的,过期后需要重新获取更新。你选择y回车确认,然后程序会在系统里创建一个计划,每天定时执行一次检查,如果证书过期就会自动更新证书。回车时如果发现创建计划报错,那么就不要创建计划了。反正https已经配置好了。至于说更新证书,你可以再提示的证书到期日期到达时,再来运行这个程序配置一下就好了。当然如果没有报错就继续让程序创建计划好了。

    6.打开IIS管理器,然后在网站列表里右击你配置的网站,点击“编辑绑定"

    

    7.在弹出的网站绑定窗口中,已经出现了https这个绑定条目。而此时我们可以不需要http了。所以可以直接删除掉http这个条目。然后重启一下网站程序。

    

    8.选择”应用程序池“,在右侧的列表中找到你配置的网站的程序条目,然后右击,先停止,再启动。如果出现”已启动“则说明程序重新启动了。此时https已经生效。这一步不是必须的,但是建议执行一遍,具体的得看你程序的实现。