6-4
Wednesday
标签
梦涛笔记

使用acme.sh自动化脚本自动签发Let's Encrypt 证书

CentOS 发布时间:2025-05-29 17:31:15

安装命令:

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

安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中: ~/.acme.sh/

注意:如果安装完成后提示 -bash: acme.sh: command not found,需要手动执行 source ~/.bashrc

升级 acme.sh 到最新版:

acme.sh --upgrade

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

acme.sh --upgrade --auto-upgrade

修改默认 CA

acme.sh 脚本默认 CA 服务器是 ZeroSSL,把 CA 服务器改成 Let's Encrypt:

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


手动验证DNS

acme.sh --issue --dns -d example.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

自动验证(DNS API)以Aliyun为例

export Ali_Key="--key--"
export Ali_Secret="--sercert--"

签发通配符证书:

acme.sh --issue --dns dns_ali -d example.com -d *.example.com
更详细的 DNS API 用法: https://github.com/acmesh-official/acme.sh/wiki/dnsapi

继签证书:

acme.sh --renew -d example.com

安装复制证书

Apache 示例:

acme.sh --install-cert -d example.com --cert-file /path/to/certfile/in/apache/cert.pem --key-file /path/to/keyfile/in/apache/key.pem --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem --reloadcmd "systemctl reload httpd"

Nginx 示例:

acme.sh --install-cert -d example.com --key-file /path/to/keyfile/in/nginx/key.pem  --fullchain-file /path/to/fullchain/nginx/cert.pem --reloadcmd  "systemctl reload nginx"

注意:reloadcmd 非常重要。证书会自动申请续签,但是如果没有正确的 reloadcmd 命令,证书可能无法被重新应用到 Apache 或者 Nginx,因为配置没有被重载。

查看已安装证书信息

acme.sh --info -d example.com

查看所有安装的证书

acme.sh --list

删除一条安装的证书

acme.sh --remove -d example.com
评论: