http协议下,数据都是明文传输的,重要信息可能会被劫持。https应运而生,但https需要证书,下面介绍一款[免费的]自动证书CA:
lets encrypt:让我们加密吧!
iis使用letsencrypt签发的https证书,首先下载对应的服务器验证工具
letsencrypt服务器验证客户端下载地址:下载
打开iis,查看我们的网站绑定:
运行客户端之前网站绑定应该是这样的:
第一条确保网站的http能够访问,阿里云万网设置下面,主机名和实际公网IP都不需要填写就可以访问
后面2条是不能够访问的,确认把主机名,ip地址填写完全,因为letsencrypt本地客户端程序会读取他们生成证书。
接下来运行letsencrypt客户端程序(需要.net环境4.6以上,按照指引安装即可),按照文字提示生成证书即可,简单易用,没有坑,略过。
运行结束后,再次打开iis,可以看到自动添加了https绑定
现在网站使用https就可以访问了,但是仍然显示不安全。原因如下:
1.网站内引用外部js,依然是http的。
解决办法,将http改为https即可,大部分都可以取到数据,但如果外部资源实在没有https,下载到本地再引用是个办法。
2.网页中显示的图片地址是http的
解决办法,将http改为https即可,大部分仍可以显示。
网站改版https需要后续从网站设计数据库存储,将大部分的http替换位https,可在数据库批处理替换以及代码中处理一下。
全部完成之后,就可以看到网页中在https下面绿色的安全标识了。
关于http自动跳转https看这里, 如果不是为了https认证,个人觉得保持http正常访问也没啥毛病。对我而言,切换https的最大动力就是浏览器的安全标志,大于其本身的安全意义,最大的阻力就是证书续期了。lets encrypt有效期3个月,3个月后需要续期。