Windows申请免费SSL证书-Let's Encrypt

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

目前LE的证书已经获得了所有浏览器的信任了(XP也可以支持了),在浏览器地址栏都会显示一个绿色可信任标志,证书90天有效期我们安装后需要定时任务每月续签一次证书就好了。

这里写图片描述

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

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

ACMESharp安装方式有两种:

如果你的服务器PowerShell版本是5.0以上,以管理员权限运行打开PowerShell执行:

PS> Install-Module -Name ACMESharp

来安装ACMESharp,安装过程需要看网络情况,服务器有条件的用vpn安装,没条件的多尝试几次。
2. 如果你的服务器PowerShell版本是3.0 or 4.0的则麻烦些,先需要在powershell上安装chocolatey命令行包管理器,然后利用chocolatey安装。
在powershell中执行:

PS> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))

来安装chocolatey命令行包管理器,然后执行:

PS> choco install acmesharp-posh-all

OK,ACMESharp安装完毕我们来申请LE证书吧:

管理员身份打开PowerShell

第一步:导入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 = 'Default Web Site' }

如果是其它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: [2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0] * File Path: [.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0] * File Content: [2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0.H3URk7qFUvhyYzqJySfc9eM25RTDN7bN4pwil37Rgms] * MIME Type: [text/plain] ------------------------------------

执行完毕之后看返回结果LE的服务器在执行下一步时会访问你的这个地址:

返回的文本内容是:

2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0.H3URk7qFUvhyYzqJySfc9eM25RTDN7bN4pwil37Rgms

.well-known文件夹在windows下可能不能直接创建,需要在命令行下创建。

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

第六步:提交认证

PS> Submit-ACMEChallenge dns1 -ChallengeType http-01

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

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

来检查验证状态:
pedding 正在等待验证
valid 验证通过
invalid 验证失败,如果验证失败需要重新申请一次,也就是我们的第四步开始重新做一次,当然alias名称需要更换,因为已经存在记录了。

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9c4a9c58034eb39dfb32086b6ef964de.html