首页 > 代码库 > 【http转https】其之二:申请Let's Encrypt颁发SSL证书

【http转https】其之二:申请Let's Encrypt颁发SSL证书

文:铁乐猫
2017年1月12日

申请Let‘s Encrypt颁发SSL证书

由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务, ISRG 来自于美国加利福尼亚州的一个公益组织。Let‘s Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构的支持,发展十分迅猛。

对于域名所有权的验证,支持两种方式:放置临时文件进行验证、查询 whois 给域名所有人发邮件验证

需要注意的是它一次只会颁发3个月有效期的证书,到期之后需要自己再续上 (仍然是免费的),维护起来比较麻烦,不过可以使用工具去自动续期。 另外它不支持通配符泛域名 (*.demo.com),所以在申请认证的时候,要把域名都 301 跳转到证书里包含的域名上,不然浏览器会弹证书错误。

windows在Let‘s Encrypt获取证书,也就是IIS的站点获取SSL证书,一般使用certify这个自动化工具会方便很多。
另外常见的一种就是用工具 letsencrypt-win-simple
下载最新版 letsencrypt-win-simple:
链接不好找:https://github.com/Lone-Coder/letsencrypt-win-simple/releases
最新版是:letsencrypt-win-simple.V1.9.1.zip。在服务器解压 letsencrypt-win-simple.V1.9.1 ,解压后运行lessencrypt.exe。
会弹出一个cmd窗口,第一次运行会让你先填一个邮箱地址。用于更新失败时邮件通知你。
技术分享

输入email后,还会再问你同意与否,后面列出的一个网址,看pdf(估计就是协议),那必须得填Y阿。
技术分享

W - 生成一个证书并通过 WebDav 来进行安装
F - 生成一个证书通过FTP、FTPS安装。
M - 通过配置手动生成证书
A - 给 IIS 当前已经发布的所有网站各自部署上对应的证书
会自动替你扫描出IIS上的站点,让你选择,一般选M手动获取站点证书。
技术分享

这样接下来就是填入host name 站点主机名,web root 网站的根目录。
letsencrypt-win-simple.V1.9.1 会自动生成临时文件并放到网站根目录,然后 Let‘s Encrypt 服务器会访问这个文件, 用于验证这个网站是否属于你。

如果验证不通过,是因为 IIS 需要修改一些配置, 验证通过后会实时颁发证书,并且会自动把证书添加到服务器中,然后直接在 IIS 中进行HTTPS部署即可。
除了直接运行letsencrypt程序来交互操作,还可以在CMD上敲命令去单条命令完成,例如:
部署单个域名
输入以下命令
letsencrypt.exe --accepttos --manualhost 你的域名 --webroot 你的网站物理路径(wwwroot路径)

除了用官方自带的命令行工具外,还有一个第三方的更好用的图形界面下的工具:
一个可以自动续订Let‘s Encrypt颁发证书的 GUI 软件,叫做 certify
作用是可以自动配置、创建和自动续订证书,并且到快要续订的时候会自动发邮件给你。
首先先去 官网下载 certify ,然后在服务器上安装。
官网下载链接:http://certify.webprofusion.com/
注意,certify 要求以管理员权限运行,并且要求服务器安装了 PowerShell 4.0。
PowerShell 4.0 默认集成在 Windows Management Framework 4.0 中,而 Windows Management Framework 4.0 又依赖 Microsoft .NET Framework 4.5 。
可以查看下自己的服务器是否具备这些环境,然后按需更新即可。更新之后安装 certify 运行。

技术分享
点击 New Contact 按钮,创建一个联系人,这个联系人会在证书快要过期的时候收到续订证书的提醒邮件,输入email 即可。
(注:第一次启动程序的时候也会弹出对话框让你填这个新联系人)

技术分享
点击 New Certificate,certify 会自动扫描 IIS 中的站点,选择你要申请证书的域名。

[](http://images2015.cnblogs.com/blog/965728/201701/965728-20170120142406406-684809033.jpg)
点击 Request Certificate 获取证书,certify 会在网站根目录下生成 .well-known 文件夹,并且会自动配置 web.config,自动验证证书。

技术分享

技术分享

验证完成后会弹窗显示证书已安装。就可以去看自己已经申请的证书详细信息了。

技术分享
且 IIS 中也已经自动给你配置好了证书,这点是省了不少事。

如果发现证书没有续订或者没有生效,点击一下 Auto Apply 就可以了。
最后记得把网站根目录下的 .well-known 目录给删掉,以保持网站目录干净。

用certify这个工具简直不能太赞了,图形化界面比letsencrypt自身的官方脚本工具直观,又会在IIS上自动替你绑定443,还带自动续订和邮件通知的功能。

【http转https】其之二:申请Let's Encrypt颁发SSL证书