1 关于Let’s Encrypt

Let’s Encrypt是一个非盈利的自动证书颁发机构(CA),我们可以免费的从Let’s Encrypt获取自己网站域名的证书,只需要在我们的web主机上运行使用ACME协议的软件来获取Let’s Encrypt证书。

2 工作原理

证书颁发主要分为两步,第一步就是域名认证,证明客户端对这个域名有控制权,不然谁都可以更改你的证书,那就乱套了。然后客户端就可以进行申请、续期以及吊销证书。

其中域名认证有两种方式:

  • 在你的域名下的已知URI下放置一个HTTP资源
  • 在你的域名下配置DNS记录

3 域名认证方式

3.1 HTTP-01 验证

Let’s Encrypt向ACME客户端提供一个令牌,ACME客户端需要在指定路径http://<your_domain>/.well-known/acme-challenge/<TOKEN>上放置指定文件。该文件包含令牌以及帐户密钥的指纹,文件准备就绪后Let’s Encrypt会尝试获取它,获取成功则验证被视为成功,就可以继续申请颁发证书。

HTTP-01验证最多接受10次重定向,只接受目标为“http:”或“https:”且端口为 80 或 443 的重定向。不接受目标为IP地址的重定向。 当被重定向到 HTTPS 链接时,不会验证证书是否有效(因为验证的目的是申请有效证书,所以它可能会遇到自签名或过期的证书)。

优点:

容易自动化,不需要关于域名配置的额外知识
支持为CNAME的域名颁发证书
适用于现成的Web服务器

缺点:

该验证方式依赖80端口
此验证方式不支持颁发通配符证书
域名下有多个Web服务器时,必须确保该文件在所有服务器上都存在

3.2 DNS-01 验证

此验证方式要求客户端在该域名下的 TXT 记录中设定特定值来证明你对该域名DNS系统的控制。Let’s Encrypt为ACME客户端提供令牌后,客户端根据令牌和帐户密钥创建TXT记录,并将该记录应用在 _acme-challenge.<YOUR_DOMAIN> 。 然后Let’s Encrypt就会向DNS系统查询该记录,如果查询到匹配项,则表示验证成功。

此时只有在DNS提供商有自动更新的API时,这种DNS-01验证方式才有意义,比如使用云厂商的DNS服务,route53。

因为要将DNS API凭据放在Web服务器上,因此会增加该服务器被黑客攻击的风险。最好是使用权限范围受限的API凭据,或在单独的服务器上执行DNS验证并自动将证书复制到Web服务器上。

优点:

此验证方式支持颁发通配符证书
有多个Web服务器时不需要其他额外配

缺点:

在Web服务器上保留API凭据存在一定风险
要求DNS提供商能自动更新DNS记录
DNS提供商可能无法保证DNS记录更新时间

4 注意事项

4.1 证书有效期

通过Let’s Encrypt申请的证书有效期是90天,因此最好是通过自动化方式对证书续期。

4.2 速率限制

证书的申请有速率限制,可以先在测试环境测试后再切到生产环境,

  • 测试环境:https://acme-staging-v02.api.letsencrypt.org/directory

    每个注册域名允许颁发的证书数量限制为每周 30000 张。
    重复证书限制为每周 30000 张。
    每账号、每主机名、每小时允许 60 次验证失败。
    每个 IP 地址注册账户数量限制为每个 IP 每 3 小时允许注册 50 个账户。
    对于 ACME v2,新订单限制为每个帐户每 3 小时 1500 个。
    
  • 生产环境:https://acme-v02.api.letsencrypt.org/directory

    每个注册域名允许颁发的证书数量限制为每周 50 张。
    重复证书限制为每周 5 张。
    每账号、每主机名、每小时允许 5 次验证失败。
    每个 IP 地址注册账户数量限制为每个 IP 每 3 小时允许注册 10 个账户。
    对于 ACME v2,新订单限制为每个帐户每 3 小时 300 个。
    

参考文档:

  1. https://letsencrypt.org/how-it-works/
  2. https://letsencrypt.org/docs/challenge-types/
  3. https://letsencrypt.org/docs/rate-limits/

Let‘s Encrypt 使用相关推荐

  1. .NET Core 常用加密和Hash工具NETCore.Encrypt

    前言 在日常开发过程中,不可避免的涉及到数据加密解密(Hash)操作,所以就有想法开发通用工具,NETCore.Encrypt就诞生了.目前NETCore.Encrypt只支持.NET Core ,工 ...

  2. 实现nginx上配置免费证书Let's Encrypt

    Let's Encrypt 的免费证书有效期为三个月,不过可以免费续期,写一个脚本定期更新即可. 准备一台nginx 服务器 ,将以下三个附件上传到你的nginx服务器. 1.下载脚本文件,wget ...

  3. 申请 Let's Encrypt 通配符 HTTPS 证书

    一.背景知识 1.1.什么是通配符证书 通配符证书,又叫泛域名证书,一张通配符的证书可以保护一个域名下同级子域名,使他们都变成 https 加密链接,不需要配置一个子域名再申请一个新证书了,而且不限制 ...

  4. let's encrypt部署免费泛域名证书

    环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...

  5. Let's Encrypt 免费通配符 SSL 证书申请教程——但是也需要email,域名所有权等,如果是黑产用的话会这样用吗?会不会暴露自己身份???...

    Let's Encrypt 免费通配符 SSL 证书申请教程 from:https://blog.csdn.net/English0523/article/details/79608464 2018 ...

  6. 阿里云Ubuntu 14.04 + Nginx + let's encrypt 搭建https访问

    用云旺的做IM,ios端图片地址只能是https的才能显示,所以为服务器增加证书 Let's Encrypt是一个免费并且开源的CA,且已经获得Mozilla.微软等主要浏览器厂商的根授信 1. 下载 ...

  7. Let's Encrypt 免费SSL配置

    2019独角兽企业重金招聘Python工程师标准>>> 官方网址 https://letsencrypt.org/ UPDATE: [2018/10/26]如果创建证书时出现 Cli ...

  8. 【HTTPS】Let's Encrypt certbot renew

    背景: web应用 有IPv4和IPv6地址,但是未在同一台服务器上 使用 Let's Encrypt,当证书过期之后,执行certbot renew 时,报错了, 报错 please make su ...

  9. 使用Let`s encrypt 免费的https 证书

    在iOS上以前暂时屏蔽https使用http的接口,将在未来被苹果拒绝: 之前传苹果会在2017年1月1日强制要求支持https,但是现在苹果又延迟该计划了 https://developer.app ...

  10. ca服务器证书鉴定计划,Let’s Encrypt 项目计划自动化地提供免费的 CA 证书

    Let's Encrypt Mozilla.思科.Akamai.IdenTrust.EFF 和密歇根大学研究人员联合宣布了 Let's Encrypt CA 项目,计划为网站提供免费的基本 SSL 证 ...

最新文章

  1. 6.15 Unity引擎渲染效率全解析
  2. LeetCode 234 回文链表
  3. jQuery框架学习第三天:如何管理jQuery包装集
  4. 前端程序员怎么面试找工作?前端面试技巧分享
  5. java位图_Java 位图法排序的使用方法
  6. Entity Framework 4.1 CodeFirst实例
  7. 国内主流的ERP软件大盘点
  8. 弱电从业人员必须学习的一些CAD绘图技巧
  9. 基于MPC5748G的以太网展板通信模块解析
  10. 单细胞分析实录(18): 基于CellPhoneDB的细胞通讯分析及可视化 (上篇)
  11. 木兰编程语言,当事人最新回复来了
  12. filecoin lotus 转账fil流程和gas计算
  13. 代码注释如此沙雕,会玩还是你们程序员!
  14. 科银资本 Jayden Wei 专访:全球首个区块链经济特区即将诞生
  15. 人工智能的前景 | 钱颖一对话张首晟、饶毅、马化腾
  16. APP运营推广那点事
  17. 清默网络——CCIE考试经验与心得(1)
  18. pygame开发2048游戏(附源代码)
  19. 35岁程序员该何去何从
  20. 谷歌浏览器CSND广告屏蔽方法

热门文章

  1. linux安装xfce4,Archlinux xfce4 安装(一)
  2. 用PIL制作手绘风格滤镜
  3. 曙光计算机发展,中科曙光历军:发展“硬科技”要有计算机等硬件设施和核心技术...
  4. yolov8seg 瑞芯微RKNN芯片、地平线Horizon芯片、TensorRT部署
  5. 【SuperMap .Net 组件】三维自定义专题图
  6. python获取字符串首字母_Python字符串常用操作命令
  7. Android OpenGL三——旋转和触控事件
  8. 不会读代码的程序员,不是好厨师
  9. Python: 字符串与字节流的两种转换方式
  10. java poi XSSFWorkbook读写Excel xlsx文件所需jar包一览