首页  >  All Categories  >  Dev  >  在中国自动生成免费HTTPS证书的最佳方案

在中国自动生成免费HTTPS证书的最佳方案

Certbot 自动生成 Lets encrypt 的方案已经被墙了,经过各种尝试之后,发现基于 amce.sh+cloudflare 的 dns 解析是最方便无痛的.

  1. 下载 acme 工具:

# 用root用户权限,因为涉及到操作nginx

sudo su

wget -O - https://get.acme.sh | sh -s email=my@example.com

  1. 域名在 Cloudflare 解析

  2. 在某个域名的 dashboard 面板右侧找到 Account ID, 记录下备用。

  3. 进入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

  1. 签发证书,运行 acme.sh --issue --dns dns_cf -d example.com --server letsencrypt

  2. 安装证书到指定目录:


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 任务,自动续期期限

  1. nginx 配置参考

可以在这里 在线生成一份合适的 ssl 配置

生成后,首次需要初始化 Diffie-Hellman keys:openssl dhparam -out /etc/nginx/dhparam.pem 2048

然后运行 sudo nginx -t && sudo systemctl reload nginx

分类: Dev 
标签HTTPS
发布于:   📝 帮我完善这个页面?

该博客没有评论系统,我正在实验有意义的讨论是否更易在社群中发生,不知道为什么,人在社群中,似乎会有更好的行为规范。然后如果有高质量的讨论,我会手动再精选到原文。为此,我建立了一个 Telegram 讨论群组,你可以在里面讨论这篇文章,点此复制文章标题和链接