免费通配符域名证书申请
前置说明
申请证书时需要证明域名是属于你的,有2种方式验证。
- HTTP方式:自己部署HTTP服务,监听80端口,并根据证书机构的提示在指定URI位置下提供一个包含指定内容的文件。
- DNS方式: 在域名供应商/DNS解析服务添加一个TXT类型DNS解析记录,将指定子域名解析到指定字符串。有些供应商会提供DNS插件,自动调用DNS服务器API,从而自动验证,没有的话需要手动配置解析。
通配符域名只支持DNS方式申请证书。
推荐全部用DNS方式,除非你需要IP证书。
certbot工具申请证书
certbot不支持IP证书。
docker镜像:certbot/certbot:v2.6.0, certbot/certbot:latest,需要配置dockerhub镜像源。
推荐使用DNS方式申请证书,部分DNS服务商支持自动验证,从而可以定时执行renew来自动更新证书。
单域名证书
1 | docker run -it --rm --name certbot \ |
--manual手动申请证书,配置该选项生成的证书不支持通过certbot自动更新,过期后需再次执行上面命令重新生成。preferred-challenges dns指定验证方式为DNS验证。不带该选项则使用HTTP验证。-d指定域名。
通配符证书
通配符域名只能通过DNS方式申请。
- 执行下面命令
1
2
3
4docker run -it --rm --name certbot \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "./cert/letsencrypt:/var/lib/letsencrypt" \
certbot/certbot:v2.6.0 certonly --preferred-challenges dns --manual -d *.cr-test.top --server https://acme-v02.api.letsencrypt.org/directory - 根据提示,配置TXT域名解析记录
- 根据提示,查询DNS解析是否生效,https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.cr-test.top.
- 按回车生成证书。
参考:
https://www.jianshu.com/p/1eb7060c5ede
https://sspai.com/post/66008
https://leohsiao.com/Web/Web%E6%9C%8D%E5%8A%A1%E5%99%A8/Nginx/%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4.html