相信一些同学注意到了, 本站启用了https, 域名改成了xhl.me, 服务也早就全都改用docker了.
顺带介绍下之前搞的两个个docker项目: alpine-tengine, docker-backup.
*本文主要介绍letsencrypt证书的创建和通配符HTTPS证书生成, 还有基于letsencrypt docker镜像实现证书自动续期.
Let's Encrypt 是一个自动签发免费HTTPS证书的非营利机构, 生成的证书有3个月有效期, 到期可以免费续期.
Certbot 是 Let's Encrypt 官方推荐的生成证书的客户端工具, 文档.
使用dnsrobocert生成证书(支持通配符域名证书), 并自动续期
这个项目, 集成了certbot(证书生成命令行工具), Lexicon(DNS记录修改工具, 主流DNS服务商都支持).
另外还自带了crontab 定时任务, 只要服务启动, 就会自动续期域名了.
1. 创建, /etc/dnsrobocert/config.yml, 内容类似这样:
# https://git.io/JL1cD
draft: false
acme:
email_account: <youremail>
staging: false
profiles:
- name: cloudflare
provider: cloudflare
provider_options:
auth_username: <cloudflare_email>
auth_token: <cloudflare_token>
- name: dnspod
provider: dnspod
provider_options:
auth_username: <dnspod_id>
auth_token: <dnspod_token>
certificates:
- domains:
- "*.xhl.me"
- xhl.me
profile: cloudflare
# autorestart:
# - containers:
# - nginx
autocmd: # 自动重启
- cmd: nginx -s reload
containers:
- nginx
# - domains:
# - "*.test.com"
# profile: dnspod
# ...
2. 根据DNS PROVIDER信息验证, 并自动创建和续期证书
docker run -it --rm --name letsencrypt2 \
-v /etc/dnsrobocert:/etc/dnsrobocert \
-v /etc/letsencrypt:/etc/letsencrypt \
-v /var/run/docker.sock:/var/run/docker.sock \
adferrand/dnsrobocert
LEXICON_PROVIDER 主流的DNS服务都支持, 比如: