在中国自动生成免费HTTPS证书的最佳方案
Certbot 自动生成 Lets encrypt 的方案已经被墙了,经过各种尝试之后,发现基于 amce.sh+cloudflare
的 dns 解析是最方便无痛的.
下载 acme 工具:
# 用root用户权限,因为涉及到操作nginxsudo suwget -O - https://get.acme.sh | sh -s email=my@example.com域名在 Cloudflare 解析
在某个域名的 dashboard 面板右侧找到
Account ID
, 记录下备用。进入https://dash.cloudflare.com/profile/api-tokens,生成一个 API Token,选择
Edit Zone
模版,Zone Resources 选择All Zones
,生成, 把以下的信息保存到~/.bashrc
export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje"export CF_Account_ID="xxxxxxxxxxxxx"source ~/.bashrc如果有什么不清楚的,可以参考文档: https://github.com/acmesh-official/acme.sh/wiki/dnsapi
签发证书,运行
acme.sh --issue --dns dns_cf -d example.com --server letsencrypt
安装证书到指定目录:
acme.sh --install-cert -d example.com \--key-file /etc/nginx/ssl/example.com.key \--fullchain-file /etc/nginx/ssl/example.com.crt \--reloadcmd "service nginx force-reload"
之后 acme 会自动添加 cron 任务,自动续期期限
- nginx 配置参考
可以在这里 在线生成一份合适的 ssl 配置
生成后,首次需要初始化 Diffie-Hellman keys:openssl dhparam -out /etc/nginx/dhparam.pem 2048
然后运行 sudo nginx -t && sudo systemctl reload nginx
Edit this page
Last updated on 11/20/2021