设为首页 收藏本站
查看: 2903|回复: 0

[经验分享] windows server2008R2申请免费let's encrypt证书

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-9-1 10:25:46 | 显示全部楼层 |阅读模式
Let’s Encrypt 项目(https://letsencrypt.org/)是由互联网安全研究小组ISRG,Internet Security Research Group主导并开发的一个新型数字证书认证机构CA,Certificate Authority。该项目旨在开发一个自由且开放的自动化 CA 套件,并向公众提供相关的证书免费签发服务以降低安全通讯的财务、技术和教育成本。在过去的一年中,互联网安全研究小组拟定了 ACME 协议草案,并首次实现了使用该协议的应用套件:服务端 Boulder 和客户端 letsencrypt。
目前LE的证书已经获得了所有浏览器的信任了(XP也可以支持了),在浏览器地址栏都会显示一个绿色可信任标志,证书90天有效期我们安装后需要定时任务每月续签一次证书就好了。
以前都是在linux上部署lets encrypt,很方便直接yum certbot-auto就可以了,今天需要部署的是一台windows server2008R2+IIS7.5。首先我使用的是:
ACMESharp:https://github.com/ebekker/ACMESharp
ACMESharp安装方式有两种:
  • 如果你的服务器PowerShell版本是5.0以上,以管理员权限运行打开PowerShell执行:

1
PS> Install-Module -Name ACMESharp



来安装ACMESharp,安装过程需要看网络情况,服务器有条件的用vpn安装,没条件的多尝试几次。
    2. 如果你的服务器PowerShell版本是3.0 or 4.0的则麻烦些,先需要在powershell上安装chocolatey命令行包管理器,然后利用chocolatey安装。
在powershell中执行:
1
PS> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))



来安装chocolatey命令行包管理器,然后执行:
1
PS> choco install acmesharp-posh-all



首先你要确实自己的powershell是什么版本的,这里直接管理员运行powershell输入:
1
2
3
4
5
6
7
8
9
10
11
12
   PS> get-host

Name          : ConsoleHost
Version       : 5.1.14393.1532
InstanceId     : 1e00ccb9-a961-4c81-89ed-b22bc1f280c4
UI           : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture  : zh-CN
CurrentUICulture : zh-CN
PrivateData    : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace       : System.Management.Automation.Runspaces.LocalRunspace



这个是我自己windows10的运行结果,从Version可以看到版本,windows server2008R2的版本是2.0的,为了方便安装我准备升级powershell。
升级简单就三步:
1、安装.NET Framework 4.6.2,下载NDP462-KB3151800-x86-x64-AllOS-ENU.exe,安装。
2、安装PowerShell 4.0(5.0依赖4.0),下载Windows6.1-KB2819745-x64-MultiPkg.msu,安装。
3、安装PowerShell 5.0,下载Win7AndW2K8R2-KB3134760-x64.msu,安装。
重启服务器完成升级。

ACMESharp安装完毕我们来申请LE证书吧:
管理员身份打开PowerShell
第一步:导入ACMESharp模块
1
PS> Import-Module ACMESharp



在这里出现错误,无法运行脚本,提示系统禁止,解决办法:
因为powershell的默认安全设置禁用了执行脚本,要启用这个功能需要拥有管理员的权限。
开启:set-executionpolicy remotesigned
关闭:Set-ExecutionPolicy Restricted

第二步:初始化ACMEVault来保存和管理证书信息
1
PS> Initialize-ACMEVault



第三步:在LE填写注册信息,接受注册协议
1
PS> New-ACMERegistration -Contacts mailto:somebody@example.org -AcceptTos



第四步:创建一个你要申请域名身份
1
PS> New-ACMEIdentifier -Dns myserver.example.com -Alias dns1



第五步:认证域名所有权
如果是IIS web服务器执行:
1
PS> Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler iis -HandlerParameters @{ WebSiteRef = 'Default Web Site' }



如果是其它web服务器,比如nginx需要自己配置的执行:
1
2
3
4
5
6
7
8
9
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 fileunder the server that is responding to the hostnameand path given with the following characteristics:
  * HTTP URL:     [http://myserver.example.com/.wel ... QIOGaiRmx8MjAoA5QH0]
  * 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
.well-known文件夹在windows下可能不能直接创建,需要在命令行下创建。
如果准备好了,我们继续下一步。
第六步:提交认证
1
PS> Submit-ACMEChallenge dns1 -ChallengeType http-01



提交之后我们接下来就需要等待LE服务器来验证了,我们可以通过命令:
1
2
3
4
PS> Update-ACMEIdentifier dns1
...
Status         : valid
...



来检查验证状态:
pedding 正在等待验证
valid 验证通过
invalid 验证失败,如果验证失败需要重新申请一次
我做到这里死活都是invalid,当时心想没办法了各种IIS的权限配置都试完了,之后突然想起以前保存的一个网站里面有所有lets encrypt的部署工具(https://letsencrypt.org/docs/client-options/),找了个windows的部署工具还带gui的
Certify SSL Manager
Home page for downloads and info : https://certifytheweb.com/ 68747470733a2f2f636572746966797468657765622e636f6d2f696d616765732f73637265656e33.png
直接对接IIS7.0以上,一键就部署好https了!!简直不要太爽~~终于找到一个windows下的lets encrypt部署利器了!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-403717-1-1.html 上篇帖子: Windows2008 r2“Web服务器HTTP头信息泄露”漏洞修复 下篇帖子: 对windows server 2008 磁盘分区容量进行调整(记录备查)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表