Let’s Encrypt 项目是由互联网安全研究小组ISRG,Internet Security Research Group主导并开发的一个新型数字证书认证机构CA,Certificate Authority。该项目旨在开发一个自由且开放的自动化 CA 套件,并向公众提供相关的证书免费签发服务以降低安全通讯的财务、技术和教育成本。在过去的一年中,互联网安全研究小组拟定了 ACME 协议草案,并首次实现了使用该协议的应用套件:服务端 Boulder 和客户端 letsencrypt。

目前网络上大部分的申请教程都是基于linux的,我们这篇就是讲述如何在Windows服务器申请LE证书并安装到Nginx上的,如果想在windows服务器中安装LE的证书我们先需要利用:

ACMESharp:https://github.com/ebekker/ACMESharp

安装ACMESharp之前,我们必须保证服务器PowerShell版本是5.0以上,如果不是,请先升级PowerShell (版本查看命令是:$PSVersionTable.PSVersion)。

然后以管理员权限运行打开PowerShell执行:

PS> Install-Module -Name ACMESharp

来安装ACMESharp,安装过程需要看网络情况,服务器有条件的用vpn安装,没条件的多尝试几次。

ACMESharp安装完成后我们来开始申请LE证书:

第一步:导入ACMESharp模块

PS> Import-Module ACMESharp

第二步:初始化ACMEVault来保存和管理证书信息

PS> Initialize-ACMEVault

第三步:在LE填写注册信息,接受注册协议(注意替换命令中的邮箱地址)

PS> New-ACMERegistration -Contacts mailto:somebody@example.org -AcceptTos

第四步:创建一个你要申请域名身份(注意替换命令中的网址地址,下文不再继续提示)

PS> New-ACMEIdentifier -Dns myserver.example.com -Alias dns1

第五步:认证域名所有权

如果是IIS web服务器执行:

PS> Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler iis -HandlerParameters @{ WebSiteRef = '此处填IIS上的网站名' }

如果是其它web服务器,比如nginx需要自己配置的执行:

PS> Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler manual == Manual Challenge Handler - HTTP ==  * Handle Time:      [1/12/2016 1:16:34 PM]  * Challenge Token:  [2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0] To complete this Challenge please create a new file under the server that is responding to the hostname and path given with the following characteristics:  * HTTP URL:     [http://myserver.example.com/.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0]  * File Path:    [.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0]  * File Content: [2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0.H3URk7qFUvhyYzqJySfc9eM25RTDN7bN4pwil37Rgms]  * MIME Type:    [text/plain] ------------------------------------

执行完毕之后看返回结果LE的服务器在执行下一步时会访问你的这个地址: http://myserver.example.com/.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0

返回的文本内容是:

2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0.H3URk7qFUvhyYzqJySfc9eM25RTDN7bN4pwil37Rgms

在IIS中,执行以上命令后,会自动在指定的网站目录下创建.well-known文件夹与相关文件,只要直接查看就行。(2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0这串字符串在实际中请替换成自己的)

如果准备好了,我们继续下一步。

第六步:提交认证

PS> Submit-ACMEChallenge dns1 -ChallengeType http-01

提交之后我们接下来就需要等待LE服务器来验证了,我们可以通过命令:

PS> update-ACMEIdentifier dns1 ... Status         : valid ...

来检查验证状态:

pedding 正在等待验证

valid 验证通过

invalid 验证失败,如果验证失败需要重新申请一次,也就是我们的第四步开始重新做一次,当然alias名称需要更换,因为已经存在记录了。

如果返回valid表示验证成功后我们继续下一步。

第七步:创建证书申请

PS> New-ACMECertificate dns1 -Generate -Alias cert1PS> Submit-ACMECertificate cert1

我们通过以下来检查证书的状态:

PS> Update-ACMECertificate cert1 Id                  : 9182eb22-cd57-468e-946e-e0b0d8843906 Alias               : cert2 Label               : Memo                : IdentifierRef       : 198488a7-c778-488c-978b-606a0181deb9 KeyPemFile          : 9182eb22-cd57-468e-946e-e0b0d8843906-key.pem CsrPemFile          : 9182eb22-cd57-468e-946e-e0b0d8843906-csr.pem GenerateDetailsFile : 9182eb22-cd57-468e-946e-e0b0d8843906-gen.json CertificateRequest  : ACMESharp.CertificateRequest CrtPemFile          : 9182eb22-cd57-468e-946e-e0b0d8843906-crt.pem CrtDerFile          : 9182eb22-cd57-468e-946e-e0b0d8843906-crt.der IssuerSerialNumber  : SerialNumber        : 00FAFC7F409C770B76EB9BA7445EC27B24494A Thumbprint          : 9A59B855EA79B3E9DE1C14307E6A21851B3C0CE8 Signature           : 9A59B855EA79B3E9DE1C14307E6A21851B3C0CE8 SignatureAlgorithm  : sha256RSA

如果结果像以上情况则表示申请完毕,我们来下载证书文件吧。

第八步:下载证书文件

下载私钥:

PS> Get-ACMECertificate cert1 -ExportKeyPEM "C:\inetpub\wwwroot\网站目录\cert1.key.pem"

下载LE证书:

PS> Get-ACMECertificate cert1 -ExportCertificatePEM "C:\inetpub\wwwroot\网站目录\cert1.crt.pem" -ExportCertificateDER "C:\inetpub\wwwroot\网站目录\cert1.crt"

下载CA中间证书:

PS> Get-ACMECertificate cert1 -ExportIssuerPEM "C:\inetpub\wwwroot\网站目录\cert1-issuer.crt.pem" -ExportIssuerDER "C:\inetpub\wwwroot\网站目录\cert1-issuer.crt"

执行以上命令如果提示 Issuer certificate hasn't been resolved异常的话,按以下方式操作:

1.打开https://letsencrypt.org/certificates/,在服务器下载一下:Active ->ISRG Root X1.pem 保存到C:\inetpub\wwwroot\网站目录(这个目录是你网站的实际目录,请根据具体情况替换)

2.然后:Update-ACMECertificate cert1

3.重复执行 “下载CA中间证书”的命令即可。

下载IIS用的PFX文件:

PS> Get-ACMECertificate cert1 -ExportPkcs12 "C:\inetpub\wwwroot\网站目录\cert1.pfx" PS> Get-ACMECertificate cert1 -ExportPkcs12 "C:\inetpub\wwwroot\网站目录\cert2.pfx" -CertificatePassword '你的密码'

如果是nginx的话只需要利用到上面三个证书文件,这里有一个特殊的地方,在nginx中ssl证书是在server中加入ssl信息:

server {    server_name www.xxx.com;    listen 443;    ssl on;    ssl_certificate D://full.pem;    ssl_certificate_key D://key.pem; }

其中full.pem是由LE证书文件和CA中间证书合并的来的,把CA中间证书内容添加到LE证书中合并为一个full.pem文件,作为公钥,另一个就是私钥key.pem。

配置好之后启动nginx直接在浏览器加上https访问你的域名吧!

LE证书默认有三个月的有效期,我们可以每个月通过自动脚本来定是续订一个证书,续订证书的步骤就是重复第七部和第八步然后应用新证书。

注意:在https站点中所有的外部资源都需要通过https访问,否则会报安全错误(图片、视频等资源可以通过http访问但是控制台会出现警告)

文章转载于 http://www.07net01.com/linux/2016/03/1353540.html,本人根据实际使用情况(2017/2/14),略有补充与修改。

免费SSL证书 - Let's Encrypt申请(WINDOWS + IIS版)的更多相关文章

  1. 申请免费通配符证书(Let's Encrypt)并绑定IIS

    申请免费通配符证书(Let's Encrypt)并绑定IIS 2018-05-25 18:01 by Giant Liu, 800 阅读, 4 评论, 收藏, 编辑 什么是 Let’s Encrypt ...

  2. 申请免费通配符证书(Let's Encrypt)并绑定IIS(转载)

    本文转载自https://blog.csdn.net/qq_41608008/article/details/80491447 什么是 Let's Encrypt? 部署 HTTPS 网站的时候需要证 ...

  3. 免费SSL证书Let's Encrypt(certbot)安装使用教程

    免费SSL证书Let's Encrypt(certbot)安装使用教程 https://www.vpser.net/build/letsencrypt-certbot.html

  4. Windows Ubuntu Bash申请免费通配符证书(Let's Encrypt)并绑定IIS

    什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用. Let’s En ...

  5. 免费SSL证书Let’s Encrypt

    由于我们公司测试环境使用的这个.自己没有亲手搭建使用,但是知道有这个东西.以后使用的话自己直接搞起. 连接文档:http://www.5icool.org/a/201512/a15271.html   ...

  6. StartSSL免费SSL证书申请和账户注册完整过程

    StartSSL算是比较早提供免费SSL证书的第三方提供商,我们可以免费申请且免费续期使用到有需要HTTPS网址的用户.关于网站使用SSL证书主要还是因为谷歌在向导说明中提到如果一个网站使用到SSL证 ...

  7. 使用Let’s Encrypt创建nginx免费SSL证书

    资料参考: https://www.freehao123.com/top-8-free-ssl-cert/   八大免费SSL证书-给你的网站免费添加Https安全加密 https://www.fre ...

  8. 八大免费SSL证书-给你的网站免费添加Https安全加密

    评论»   https://www.freehao123.com/top-8-free-ssl-cert/ 文章目录 Let's Encrypt StartSSL SSL CloudFlare SSL ...

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

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

随机推荐

  1. NLP(三)_统计语言模型

    概念 统计语言模型:是描述自然语言内在的规律的数学模型.广泛应用于各种自然语言处理问题,如语音识别.机器翻译.分词.词性标注,等等.简单地说,语言模型就是用来计算一个句子的概率的模型 即P(W1,W2 ...

  2. SpringCloud分布式开发理解

    谈到SpringCloud最新接触到的可能就是那五大"神兽",之前最先接触分布式开发是通过dubbo的RPC远程过程调用,而dubbo给我得感觉就是:虽然所有的主机物理上分布了,但 ...

  3. OpenCV几种边缘检测的简例

    简单记录一下OpenCV的几种边缘检测函数的用法. 边缘检测算法 以Sobel边缘检测算法为例. Sobel卷积核模板为: 偏导公式为: Gx(i,j)=[f(i+1,j−1)+2f(i+1,j)+f ...

  4. 用OpenCV进行视频截取

    记录用OpenCV进行视频截取. 核心代码如下: CvCapture* capture = cvCreateFileCapture(src_avi_file.c_str()); if (capture ...

  5. IDL语言开发规范

    一.支持的类型 1.IDL支持常见的基本类型,常量,枚举,容器,结构体,服务.不支持多态和重载,参数.返回值不能为空,各个基本类型的标识如下: bool:对应java的boolean,布尔类型(tru ...

  6. phpcms ——模板标签使用说明

    使用phpcms总是要查询各种标签,实在很烦,只好找个比较全的来备查.因为自己写一个orm来配合调用也没那么容易无缝的嵌入到引擎当中. 获取父分类下面的子分类 {loop subcat(77) $k ...

  7. 旧书重温:0day2【4】动态获取函数地址

    通过以上3篇文章的学习,我们已经可以获取到kernel32.dll的地址了下一步 我们就是获取几个重要的函数 1.GetProcAddress 2.LoadLibrary 有了这两个函数很多函数都可以 ...

  8. MFC中控制Tips的显示 - lingyun1120

    from:  http://www.cnblogs.com/lingyun1120/archive/2011/11/09/2243279.html MFC中为ToolTips生成了一个类CToolTi ...

  9. 剑指Offer面试题:1.实现单例模式

    一 题目:实现单例模式Singleton 题目:设计一个类,我们只能生产该类的一个实例. 只能生成一个实例的类是实现了Singleton(单例)模式的类型.由于设计模式在面向对象程序设计中起着举足轻重 ...

  10. 拦截器springmvc防止表单重复提交【1】

    [参考博客:http://www.cnblogs.com/hdwpdx/archive/2016/03/29/5333943.html] springmvc 用拦截器+token防止重复提交 首先,防 ...