windows下部署免费ssl证书(letsencrypt)

随着网络的发展,网络安全也愈来愈重要,对于网站来讲,从Http升级到https也是咱们要作的首要事情。要实现https,首先咱们须要申请一张SSL证书,这篇文章我主要介绍下边这几个方面:git

1. SSL简单介绍github

2. 免费Letencrypt证书部署windows

3. 安装注意事项api

一.SSL简单介绍浏览器

  ssl做为一个网络加密协议,主要是存在于系统中应用层和传输层之间的一个安全套接字层(Secure Socket Layer),也就是位于TCP/IP协议和各个应用层协议之间,为应用数据传输提供加密的协议。固然它内部又分记录协议和握手协议两个部分,这里若是有兴趣的能够去详细了解一下,我先简单介绍一下流程性的东西。安全

  它的工做流程大概能够理解为这样,客户端发起网络请求给服务端,发起握手,交换证书信息,创建链接。简单来讲分为下边几部:服务器

  客户端:发送其支持的ssl版本和加密方式给服务端。网络

  服务端:选择加密方式并发送证书和公钥给客户端并发

  客户端:验证证书信息,并经过公钥生成共享秘钥,交换dom

  服务端:好,我们能够传递加密数据了

  以上是简单的描述了握手的过程,每一步均可以继续分解,能够自行查找相关文档深刻了解。

 

  这里须要介绍的另一个协议TLS,这个协议创建在SSL3.0规范之上,更加严格明确。其中它又有一个扩展协议叫作 SNI(Server Name Indication-服务器名称指示),这里介绍下它的主要做用。

  在咱们经常使用的主机中,可能会有不少站点,咱们并不可以一次性提早获知将使用此服务器的全部域名列表,可是咱们不能每次修改域名从新颁发一次证书,因此有了SNI,让咱们能够在一台主机上可以部署多个证书, 使得服务器能够在握手阶段选择正确虚拟域,并发送对应证书。在IIS8.0以上版本中,咱们绑定域名时会有以下的选项:

 

   当前有不少免费和收费 ssl的证书提供商能够供咱们选择,固然咱们也能够本身做为颁发主体,制做ssl证书,不过像谷歌等浏览器对于不受信任的证书机构在页面上会给提示存在安全风险,阻止访问,这对用户体验来讲是很是糟糕的。根据安全等级,当前ssl证书根据主要有如下几类:

  EV - 业界顶级SSL证书,部署了EV SSL证书的网站,地址栏会变成醒目的绿色,而且显示网站所属企业名称

  OV - 使用较为普遍的企业验证型SSL证书,部署了OV SSL证书以后,地址栏会有安全锁标识显示

  DV - 只验证域名,快速签发的SSL证书。也会在地址栏显示安全锁标识,但证书详情里面不显示O字段,不显示使用者名称,只显示域名

  当前受到主流浏览器认可的不少SSL证书机构颁发的免费证书主要也都是DV等级。下面我介绍一下最近比较知名的 Letencrypt 免费ssl证书在windows下的部署过程。

 

二. 免费Letencrypt证书部署

  这个是由国外发起的一个免费的ssl项目,如今已经获得了谷歌等主流浏览器的承认。从安全角度考虑,经过Letencrypt安装的免费证书只有三个月的有效期,到期之须要从新申请,可是这也给部署形成了必定的麻烦,因此官方也提供了各类自动化的解决方案,这里我介绍的是windows下的证书申请和自动更新工具 letsencrypt-win-simple

  首先咱们下载   GitHub地址(https://github.com/Lone-Coder/letsencrypt-win-simple/releases) 并解压

  由于安装过程须要在站点下生成验证文件,因此请以管理员模式进入cmd界面,也能够右键开始菜单 点击 命令提示符(管理员)选项

进入解压文件夹,运行 letsencrypt.exe --san 命令

执行完以后会自动将IIS下的全部网站列出来,后边会有以下几个选项:

这几个选项分别对应不一样的状况,这里由于个人机器下有好几个站点,我想给他们统一颁发一个证书,我选择S,以后它会提示你输入要安装的站点序号,这里我输入 3,4

 

接下来它会在每一个站点下建立一个里验证文件,验证经过以后就会生成对应证书添加到IIS中,若是一切正常的状况下会在任务管理中建立一个定时更新任务。

 

当前这个软件还存在一些bug,我我的在安装中也遇到了几个异常终止的错误,重复操做两次才正常经过,若是你也遇到问题,能够直接去IIS下证书管理,查看是否已经建立了对应的证书,若是存在能够手动绑定。

 

三. 注意事项

  使用Letencrypt时有必定的次数限制,以防止申请的滥用,这里是 官方网站 给出的限制信息:

If you have a lot of subdomains, you may want to combine them into a single certificate, up to a limit of 100 Names per Certificate. Combined with the above limit, that means you can issue certificates containing up to 2,000 unique subdomains per week. A certificate with multiple names is often called a SAN certificate, or sometimes a UCC certificate.

We also have a Duplicate Certificate limit of 5 certificates per week. A certificate is considered a duplicate of an earlier certificate if they contain the exact same set of hostnames, ignoring capitalization and ordering of hostnames. For instance, if you requested a certificate for the names [www.example.comexample.com], you could request four more certificates for [www.example.comexample.com] during the week. If you changed the set of names by adding [blog.example.com], you would be able to request additional certificates.

  若是你须要测试,能够在命令行中执行:letsencrypt.exe --test 。进入测试环境。

 

若是你还有其余问题,或者对个人OSS开源系列项目感兴趣,请关注公众号(OSSCoder):

相关文章
相关标签/搜索