侧边栏壁纸
博主头像
知我隧道博主等级

一个被程序员生涯耽误的UI设计师

  • 累计撰写 25 篇文章
  • 累计创建 10 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

配置acme.sh实现自动续签免费证书

kongbai121
2026-05-21 / 0 评论 / 0 点赞 / 2 阅读 / 4446 字 / 正在检测是否收录...

一、安装 acme.sh

git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install -m my@example.com
# 生效命令(关闭当前终端重新连接也可)
source ~/.bashrc
# 验证安装成功
acme.sh --version

二、(可选) 配置默认 CA(Let's Encrypt)

acme.sh --set-default-ca --server letsencrypt

三、创建 ACME 专用验证目录

核心:不占用业务根目录,单独给证书验证使用

# 创建验证目录
mkdir -p /var/www/challenge/.well-known/acme-challenge
# 设置权限
chmod -R 755 /var/www/challenge
chown -R nginx:nginx /var/www/challenge

四、配置 Nginx

在nginx配置80端口中, 配置DNS验证块, 让 Let’s Encrypt 服务器通过互联网访问这个文件, 访问成功 → 证明域名归你 → 给你发证书

# ACME 证书验证专用
location /.well-known/acme-challenge/ {
    root /var/www/challenge;
    try_files $uri =404;
}

配置ssl证书存放位置(其他https自行配置)

ssl_certificate      /etc/nginx/ssl/kongbai121.xyz.cer;
ssl_certificate_key  /etc/nginx/ssl/kongbai121.xyz.key;

最终 Nginx 配置

server {
        listen       80;
        listen  [::]:80;
        listen       443 ssl;
        server_name  www.kongbai121.xyz kongbai121.xyz;
​
        ssl_certificate      /etc/nginx/ssl/kongbai121.xyz.cer;
        ssl_certificate_key  /etc/nginx/ssl/kongbai121.xyz.key;
​
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
​
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
​
        # ACME 证书验证专用
        location /.well-known/acme-challenge/ {
            root /var/www/challenge;
            try_files $uri =404;
        }
​
        location / {
          proxy_pass http://localhost:18090/;
          proxy_set_header HOST $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

五、申请 SSL 证书

acme.sh --issue -d kongbai121.xyz -d www.kongbai121.xyz -w /var/www/challenge

六、安装证书到 Nginx

# 创建证书存放目录
mkdir -p /etc/nginx/ssl
​
# 安装证书(关键:reloadcmd 自动重载Nginx)
acme.sh --install-cert -d kongbai121.xyz \
--key-file     /etc/nginx/ssl/kongbai121.xyz.key \
--fullchain-file /etc/nginx/ssl/kongbai121.xyz.cer \
--reloadcmd    "nginx -s reload"

七、设置定时任务, 即将到期时自动续签

打开cron任务列表

crontab -e

配置执行任务

31 2 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

八、常用维护命令

# 查看所有证书
acme.sh --list
​
# 查看证书详情
acme.sh --info -d kongbai121.xyz
​
# 更新 acme.sh
acme.sh --upgrade
​
# 开启自动更新
acme.sh --upgrade --auto-upgrade


0

评论区