• Let‘s Encrypt 使用


    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:///.well-known/acme-challenge/上放置指定文件。该文件包含令牌以及帐户密钥的指纹,文件准备就绪后Let’s Encrypt会尝试获取它,获取成功则验证被视为成功,就可以继续申请颁发证书。

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

    优点:

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

    缺点:

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

    3.2 DNS-01 验证

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

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

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

    优点:

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

    缺点:

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

    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 个。
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 生产环境:https://acme-v02.api.letsencrypt.org/directory

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

    参考文档:

    1. https://letsencrypt.org/how-it-works/
    2. https://letsencrypt.org/docs/challenge-types/
    3. https://letsencrypt.org/docs/rate-limits/
  • 相关阅读:
    什么是计算机蠕虫?
    05、SpringCloud之Hystrix组件学习笔记
    Tomcat解析
    基于Python实现的基金交易系统
    IT面试参考
    大数据技术之Hadoop:提交MapReduce任务到YARN执行(八)
    Centos7 TiDB 数据库安装部署
    企业如何做好疫情防控?数字化疫情管理事半功倍
    华为开发后端实习体验总结帖(详细)
    精品基于NET实现的论坛管理系统
  • 原文地址:https://blog.csdn.net/u010039418/article/details/126045491