如何申请免费ssl证书以及自动续期

你的网站在“luo奔”(http协议)还是购买的ssl证书呢,其实使用脚本就可以申请ssl证书并且自动续期。

下面分享我申请ssl证书折腾的过程及执行过程中遇到的坑,收藏留用吧。

官网最新已经有提供CertGo客户端,如果你不需要折腾脚本可以使用可视化操作(如果你更喜欢用脚本就选acme.sh)。

  • CertGo:桌面端,体验沉浸式、可视化的证书管理
  • acme.sh:纯 Shell 脚本编写的客户端,零依赖,轻量级且功能极其强大。

配置 DNS 服务商

以 aliyun 服务商为例(具体以您的域名服务商为准)。

https://ram.console.aliyun.com/users/create

配置访问凭证,记录生成AccessKey IDAccessKey Secret(后面会用到)。

PixPin_2026-03-29_19-51-34.png

登录 FreeSSL

https://freessl.cn 注册/登录。

添加 ACME 账号

新增 EAB -> 起个标签名 --> 记录生成 EAB KIDEAB HMAC KEY(后面会用到)。

可视化(CertGo 桌面端)

唤起客户端

下载安装客户端。

PixPin_2026-03-29_19-52-33.png

配置 DNS 供应商

API 凭证输入 aliyun 申请的凭证信息。

PixPin_2026-03-29_20-01-47.png

配置自动化证书

  1. 基础配置(添加域名)

    • 可以多个域名公用一个证书,添加多个域名即可。
    • 如果你申请的是*通用域名,最好再申请一个单域名,例如:申请*.bugshare.cn时多申请一个bugshare.cn,这样访问https://bugshare.cn也能通。
  2. 集成设置(选择供应商)

    • 选择之前配置的 DNS 供应商,这样会在 DNS 记录中自动写入 TXT 记录。
    • 如果申请过程中出现DNS错误,一般是DNS解析问题,可以通过https://dnschecker.org检查或联系DNS供应商(有时候可能48小时内生效)。
  3. 部署配置(复制证书)

    • 证书路径以你服务器存放实际路径(例如以nginx配置的路径为准),
    • 复制后可以执行命令,例如:重启nginxnginx -s reload,我的nginx放在docker,那么配置的是docker restart nginx
  4. 部署 CertGo Agent(Linux服务器自动续期)

    • 下载配置文件,一键复制配置命令
    • 安装 CertGo Agent curl -sSL https://certgo.trustasia.com/install.sh | sudo bash
    • 上传配置并首次运行,将配置文件上传到 ~/.certgo/configs/ 目录后,执行 certgo reload

PixPin_2026-03-29_20-10-19.png

Shell 脚本(acme.sh)

安装 acme.sh

首先在服务器上安装 ACME 客户端。

https://github.com/acmesh-official/acme.sh/wiki/说明

# 终端执行
curl https://get.acme.sh | sh -s email=你的FreeSSL账号邮箱

# 国内环境:
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m 你的FreeSSL账号邮箱

配置 DNS 服务商

导入 DNS 提供商的 API 凭证以实现自动验证(前面有申请)。

export Ali_Key="您的阿里云Key"
export Ali_Secret="您的阿里云Secret"

绑定 ACME 账户(首次运行)

使用 EAB 凭证绑定您的 ACME 账户(前面有申请)。

./acme.sh --insecure --register-account --server https://acme.litessl.com/acme/v2/directory \
--eab-kid 您的EAB KID \
--eab-hmac-key 您的EAB HMAC KEY

申请证书

执行命令以验证域名所有权并签发证书。

  • 可以多个域名公用一个证书,添加多个域名即可。
  • 如果你申请的是*通用域名,最好再申请一个单域名,例如:申请*.bugshare.cn时多申请一个bugshare.cn,这样访问https://bugshare.cn也能通。
  • 如果申请过程中出现DNS错误,一般是DNS解析问题,可以通过https://dnschecker.org检查或联系DNS供应商(有时候可能48小时内生效)。
./acme.sh --insecure --issue --server https://acme.litessl.com/acme/v2/directory \
--dns dns_ali \
--dnssleep 300 \
-d "bugshare.cn" \
-d "*.bugshare.cn" \
-d "bugfix.wiki" \
-d "*.bugfix.wiki" \
--keylength ec-256

部署证书 (示例)

选择您的 Web 服务器类型,将证书安装到指定路径并配置服务重载。

  • 之前申请的所有域名都是写上
  • 证书路径以你服务器存放实际路径(例如以nginx配置的路径为准),
  • 复制后可以执行命令,例如:重启nginxnginx -s reload,我的nginx放在docker,那么配置的是docker restart nginx
./acme.sh --install-cert \
-d "bugshare.cn" \
-d "*.bugshare.cn" \
-d "bugfix.wiki" \
-d "*.bugfix.wiki" \
--key-file       /home/data/nginx/conf.d/cert/bugshare.cn.key \
--fullchain-file /home/data/nginx/conf.d/cert/bugshare.cn.pem \
--reloadcmd     "docker restart nginx"

自动续期

acme.sh 会自动创建 Cron 任务,无需额外操作。

# 查看定时任务
crontab -l | grep acme.sh

强制续签证书

目前证书每 30 天自动更新,你无需任何操作。

但是你也可以强制续签证书:

./acme.sh --renew -d "bugshare.cn" -d "*.bugshare.cn" -d "bugfix.wiki" -d "*.bugfix.wiki" --force

查看已安装证书信息

./acme.sh --info -d "bugshare.cn" -d "*.bugshare.cn" -d "bugfix.wiki" -d "*.bugfix.wiki"

更新 acme.sh

升级 acme.sh 到最新版:

./acme.sh --upgrade

如果你不想手动升级,可以开启自动升级:

./acme.sh --upgrade --auto-upgrade

之后,acme.sh 就会自动保持更新了。

你也可以随时关闭自动更新:

./acme.sh --upgrade --auto-upgrade  0

PixPin_2026-03-29_21-05-52.png

DNS Check

https://dnschecker.org

Windows 服务器

如果您用的是Windows Server服务器,可以参考:https://www.win-acme.com

posted @ 2026-03-30 09:54  BugShare  阅读(18)  评论(0)    收藏  举报