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

1. SSL简单介绍

2. 免费Letencrypt证书部署

3. 安装注意事项

一.SSL简单介绍

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

  它的工作流程大概可以理解为这样,客户端发起网络请求给服务端,发起握手,交换证书信息,建立连接。简单来说分为下边几部:

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

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

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

  服务端:好,咱们可以传递加密数据了

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

  这里需要介绍的另外一个协议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 。进入测试环境。

windows下部署免费ssl证书(letsencrypt)的更多相关文章

  1. windows下 申请免费ssl证书的方法 (letsencrypt)

    Let's Encrypt,官网是https://letsencrypt.org/,它是一个由各大公司赞助的公益组织: 有趋势有需求,自然也有免费可用.免费的SSL证书中,首推就是Let's Encr ...

  2. Windows Server 快速生成免费SSL证书 (letsencrypt)

    最近官网需求部署个SSL证书,一番操作后把借鉴的网站与实际过程记录下来 Let's Encrypt,官网是https://letsencrypt.org/,它是一个由各大公司赞助的公益组织: 有趋势有 ...

  3. windows 下的 Apache SSL证书配置

    一.获取证书 1.从腾讯云获取 (1)登录腾讯云后,在“产品”中搜索[ssl]然后会得到 "SSL证书“,进入后点“立即选购” 这样就完成了证书的申请,等待一个工作日的审核. 审核通过后,进 ...

  4. windows server使用 LetsEncrypt-Win-Simple来安装和使用用Let's Encrypt免费SSL证书

    一.网站部署 LetsEncrypt-Win-Simple可以自动发现已经部署的网站供我们选择要生成证书的网站,而且还需要进行验证.所以在生成证书之前,确保网站已经部署好并可以正常访问. 二.生成证书 ...

  5. 【转】IIS - 自动申请、部署Let's Encrypt的免费SSL证书

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  6. IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  7. 使用acme.sh申请&自动续期LetsEncrypt免费SSL证书(转)

    一.简介 LetsEncrypt是一个免费.自动.开放的证书颁发机构.acme.sh 实现了 acme 协议, 可以从 LetsEncrypt 生成免费的证书. 本文介绍如何使用acme.sh来签发并 ...

  8. ubuntu 下获取Let's Encrypt免费ssl证书

    # ubuntu 下获取Let's Encrypt免费ssl证书 # 一.安装Nginx https://www.cnblogs.com/watermeloncode/p/15476317.html ...

  9. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

随机推荐

  1. Mac OS X窗口最小化方法的几个快捷键

    大家都知道在 OS X 系统中,点击窗口左上角中间的小黄按钮就可以最小化当前窗口.而事实上,还有一些比点击这个按钮更快的窗口最小化方法.这里一起分享给大家! 使用快捷键 Command+M,可以实现快 ...

  2. P4语言编程快速开始 实践一

    参考:P4语言快速开始 感谢杨老师的分享! 前言及P4程序请参考原文,本文主要是对文章中的两个动手实例的实践记录. 1.通过behavioral-model运行simple_router样例 执行命令 ...

  3. IOS三种归档(NSKeyArchieve)的总结

    IOS三种归档(NSKeyArchieve)的总结 归档是一种IOS中常用来存储文件的一种方法,在面向对象的语言中,归档也就实际上可以将一切对象存储在文件中,以下是IOS开发中常见的三种文件归档方式, ...

  4. Nodejs之发送邮件nodemailer

    nodejs邮件模块nodemailer的使用说明 1.介绍 nodemailer是node的一个发送邮件的组件,其功能相当强大,普通邮件,传送附件,邮件加密等等都能实现,而且操作也十分方便. nod ...

  5. yum命令被锁 Existing lock /var/run/yum.pid

    有时使用yum命令,不知怎会回事就提示: Existing lock /var/run/yum.pid: another copy is running as... 感觉也没操作什么错误的事情. 此时 ...

  6. UVa 10382 - Watering Grass

    题目大意:有一条长为l,宽为w的草坪,在草坪上有n个洒水器,给出洒水器的位置和洒水半径,求能浇灌全部草坪范围的洒水器的最小个数. 经典贪心问题:区间覆盖.用计算几何对洒水器的覆盖范围简单处理一下即可得 ...

  7. Spark中的wordCount程序实现

    import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.s ...

  8. Grunt安装中遇到的问题汇总

    Grunt安装中遇到的问题汇总 1.如果是windows下的dos中安装Grunt,必须以管理员身份登录(第一个坑) 登录方法是: 方法一:开始>所有程序>附件>命令提示符上右键&g ...

  9. 负载均衡探测器lbd

    负载均衡探测器lbd   大型网站为了解决海量访问问题,往往采用负载均衡技术,将用户的访问分配到不同的服务器上.网站的负载均衡可以从DNS和HTTP两个环节进行实施.在进行Web渗透测试的时候,需要先 ...

  10. input框的默认bug解决办法

    input框的默认bug是在没干掉边框的情况下是不能设置背景颜色的,否则边框会变成内边框(黑色)效果,很难看. 解决办法是: none掉input框的边框:border:none; 再设置其背景色为任 ...