手动 acme.sh 工具

O's World

在本地生成 Cloudflare DNS 证书申请、安装命令与 Nginx 证书配置。

服务器需已安装 acme.sh 并配置 Cloudflare DNS。在同一 Shell 中依次执行步骤 1–4;重载命令适用于由 systemd 管理的 Nginx。

1 · Cloudflare Token

只读模板,export 前保留一个空格。请在终端中填入 Token 后再执行。

 export CF_Token=""

2 · 申请证书

acme.sh --issue \
  --dns dns_cf \
  -d example.com \
  --keylength ec-256

3 · 创建目录

mkdir -p /etc/nginx/ssl/example.com

4 · 安装证书

acme.sh --install-cert -d example.com --ecc \
  --key-file /etc/nginx/ssl/example.com/privkey.pem \
  --fullchain-file /etc/nginx/ssl/example.com/fullchain.pem \
  --reloadcmd "systemctl reload nginx"

Nginx 证书配置

ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;

常见路径与命令

证书路径随上方输入更新。常见 Linux 路径可能因安装方式不同而变化。请在服务器上以所需权限执行命令。

可选:DH 参数用于 DHE 密码套件,ECDHE 不需要。先生成文件,再添加 ssl_dhparam 配置;生成可能需要一些时间。命令会跳过已存在的文件。

私钥文件

/etc/nginx/ssl/example.com/privkey.pem

证书与中间证书链

/etc/nginx/ssl/example.com/fullchain.pem

DH 参数文件

/etc/nginx/ssl/dhparam.pem

生成 DH 参数(2048 位)

mkdir -p /etc/nginx/ssl/ && if [ ! -e /etc/nginx/ssl/dhparam.pem ]; then
  openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
fi

Nginx DH 参数配置

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

查看证书主体、签发者与有效期

openssl x509 -in /etc/nginx/ssl/example.com/fullchain.pem -noout -subject -issuer -dates

检查证书是否将在 30 天内到期

openssl x509 -in /etc/nginx/ssl/example.com/fullchain.pem -noout -checkend 2592000

Nginx 主配置(常见路径)

/etc/nginx/nginx.conf

acme.sh 工作目录(默认)

~/.acme.sh/

检查 Nginx 配置

nginx -t

检查并重载 Nginx(systemd)

nginx -t && systemctl reload nginx