申请Let’s Encrypt 证书
要申请Let’s Encrypt证书,首先要证明你对域名或服务器有控制权
有两种验证方式:
1、HTTP-01 验证
在服务器上放一个特定的文件(你能把文件放上去,说明你有服务器的控制权),签发的时候去验证,通过了就签发
微信开发域名验证一般是这种方式
适用于:
服务器可直接开放 80 端口
单域名或非通配符证书申请
2、DNS-01 验证(TXT记录验证)
在域名解析里面添加一条特定的txt记录(你能添加记录,说明你有域名的控制权)签发的时候去验证,通过了就签发
阿里云的免费证书,是这种方式
适用于:
无法开放 80 端口的服务器(如内网服务、CDN 节点)
通配符证书申请(必需)
多子域名批量管理
3、证书有效期
90天
4、自动签发
对于以上两种方式,可以手动进行,比如手动把文件放到网站特定目录下,或者手动在dns解析里面添加一条记录。自动签发就是工具来自动完成。
对于http-01 需要在web服务上运行工具即可
对于dns-01 需要使用域名注册商的API
5、手动签发通配符证书,DNS-01验证
安装Certbot
sudo yum install certbot -y
申请证书
sudo certbot certonly --manual --preferred-challenges dns -d '*.demo.com'
接下来根据指引一步一步填写:①输入邮箱 ②同意协议 ③是否接收邮件。④在dns解析里面添加txt记录
填完以后,回车。就在对应的目录生成了证书文件。
邮箱是为了到期提醒的。
6、补充
证书有效期与续签:
Let's Encrypt 证书有效期为 90 天,可通过工具(如 certbot renew 或 acme.sh 定时任务)自动续签。
工具推荐:
certbot:官方推荐工具,支持 HTTP/DNS 验证。
acme.sh:支持 100+ DNS 服务商 API,自动化程度高。