使用certbot申请let’s encrypt的免费HTTPS证书(教程)

Let’s Encrypt由互联网安全研究小组(缩写ISRG)提供服务。主要赞助商包括电子前哨基金会、Mozilla基金会、Akamai以及思科。

环境: CentOS 7

下面介绍通过DNS TXT记录认证方式申请证书 , 我们假设给 www.example.com 这个域名申请证书

首先我们到 https://certbot.eff.org 安装通过网站指引安装certbot工具

1.执行命令 (在CentOS上)

#直接申请SSL证书 , 不需要部署web站点服务
certbot --manual --preferred-challenges dns certonly

2.按照命令行提示输入需要申请证书的域名(如: www.example.com) (在CentOS上)

3.按照命令行提示在DNS (如:godaddy等域名服务商) 中添加对应的TXT记录(如下图所示) (在CentOS上)

当然,其他的域名商操作也一样(如:阿里云/腾讯云/Cloudflare等)

保存后 , 等待一分钟左右 , 主要是等待DNS更新

接下来我们使用以下命令查询TXT是否已经生效(不同地区或DNS服务器各有差异)

#在Windows中使用nslookup命令
nslookup -q=TXT www.example.com 

4.接下来按命令行提示操作(按任意键继续) (在CentOS上)

5.如无错误 , 即可顺利获得一个有效期为3个月(180天)的https证书

按照提示信息里说明的证书存放路径 , 可以看到以下几个证书文件

一般是位于 /etc/letsencrypt/live/www.example.com 目录

cert.pem
chain.pem
fullchain.pem #一般用这个
privkey.pem   #一般用这个

letsencrypt 有什么限制

标准限制

  • 同一个顶级域名下的二级域名,一周做多申请 20 个
  • 一个域名一周最多申请 5 次
  • 1 小时最多允许失败 5 次
  • 请求频率需要小于 20 次/s
  • 一个 ip 3 小时内最多创建 10 个账户
  • 一个账户最多同时存在 300 个 pending 的审核

测试模式限制

在 certbot 命令后加上 --staging 参数,限制更松一些,但不是正式证书

  • 同一个顶级域名下的二级域名,一周做多申请 30000 个
  • 一个域名一周最多申请 30000 次
  • 1 小时最多允许失败 60 次
  • 一个 ip 3小时内最多创建 50 个账户