owenyoung 13小时前
在中国自动生成免费HTTPS证书的最佳方案
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Certbot自动生成Let's Encrypt证书方案受限,本文介绍使用acme.sh工具结合Cloudflare DNS解析实现HTTPS部署。首先下载安装acme.sh,然后在Cloudflare账户获取API Token并配置环境变量。通过执行acme.sh命令指定域名和服务器签发证书,并自动配置nginx加载证书及自动续期。最后生成Diffie-Hellman keys并测试nginx配置,实现安全HTTPS服务。

📋 安装acme.sh:使用wget下载并执行安装脚本,指定邮箱地址进行初始化配置。

🔑 Cloudflare配置:获取Account ID和API Token,在Cloudflare面板生成具有编辑区域权限的Token,并配置bash环境变量。

🚀 签发证书:执行acme.sh --issue命令结合dns_cf插件,自动完成域名DNS解析记录的动态更新。

🔒 安装证书:将签发成功的证书和私钥安装到nginx指定目录,并设置自动重载命令确保配置生效。

🔄 自动续期:acme.sh会自动添加cron任务,定期检查证书有效期并在需要时自动续期,无需人工干预。

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

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

ACME.sh Cloudflare Let's Encrypt HTTPS部署
相关文章