使用 Let's Encrypt 生成通配符证书
AI 摘要 Kimi Chat
文章分享了使用Let's Encrypt生成通配符证书的过程。作者描述了在阿里云
本站长期以来维护着多个 Web 服务,除了此博客外,还有一个部署在 80 端口的 ShareLaTeX 以及其他杂七杂八的网站,这些站点没有 https,每次访问时还得手动输入 http://
以及端口号,感觉既不安全也不优雅。因此最近我想用反代优化一下服务器站点的 URL 分配。
我所期望的结果是:
- 将所有网站服务均反代到 443 端口。
- 通过域名对服务进行区分。
- 所有服务都开启 SSL。
那么不可避免地,我需要申请一张多域名的 SSL 证书(不然得各自申请证书,维护起来过于麻烦)。基于一劳永逸的考虑,这里我决定直接为通配符域名 *.fyz666.xyz
申请证书。
各大平台出售的通配符证书都贼贵,但这种东西明明是可以免费的,何必花这个冤枉钱。Let’s Encrypt 早已支持通配符 SSL 证书的签发,而且十分方便。
我的环境如下:
阿里云的 Ubuntu 18.04 镜像服务器,运行了多个 Web 服务,每个 Web 服务都独立运行在一个 docker 容器中。
接下来,我们安装 Certbot:
bash
sudo apt install certbot
安装完成后,准备用该程序来签发证书。运行 certbot:
bash
sudo certbot certonly --manual -d *.fyz666.xyz --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
在命令运行过程中会有一些交互,中途需要做一条 txt 解析以进行域名所有权的验证,签发下的证书会位于 /etc/letsencrypt/live
路径下。
通配符域名证书的续签过程与申请一样,只能通过 dns-01 的方式进行,因此自动化续签通配符证书,主要就是实现自动化 DNS 解析,这一步我们只要拿到域名所在的 DNS 服务商提供的 Access Key 与 Access Token 即可。这里有位大佬已经写好了脚本与配置方法,直接拿来用就行!
拿到证书,接下来只要做反向代理就好了!反向代理的部署及踩坑过程会记录在后面的文章中。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逸风亭!