使用acme.sh申请免费SSL证书

简介

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书,传送门 官方文档
本文使用环境CentosAliyun域名、已提前申请Aliyun - AccessKey作用:默认acme.sh生成的证书有效期仅为3个月,acme.sh实现经DNS验证域名自动更新证书目的。

一、安装软件

# 安装acme.sh
curl https://get.acme.sh | sh -s email=my@example.com # 换成自己的邮箱
# 国内镜像
curl https://gitcode.net/cert/cn-acme.sh/-/raw/master/install.sh?inline=false | sh -s email=my@example.com

# 使环境变量立即生效
source ~/.bashrc
安装 acme.sh 后会自动创建一个 cronjob,每天定期检查所有证书,如果证书需要更新会自动更新证书。可通过 crontab -l 查看 crontab 任务

二、申请阿里Accesskey

AccessKey ID 和 AccessKey Secret 是您访问阿里云 API 的密钥。登录阿里云平台,右上角我的头像处申请

# 将申请的阿里云Accesskey,加入环境变量
export Ali_Key="xxxxxxxxxxxxxxxx"
export Ali_Secret="xxxxxxxxxxxxxxxxxxxxxxx"

申请证书

# 申请证书,默认CA为ZeroSSL,更改自行追加 --server,详见官网
acme.sh --issue --dns dns_ali -d 域名.com -d *.域名.com --keylength ec-256

# 生成的证书默认放在 acme.sh 的安装目录下,目录结构可能会发生变化,可以使用 --install-cert 命令安装证书,把证书copy到相应的位置

# 安装证书 & 重启nginx
acme.sh --installcert -d 域名.com \
             --keypath       /data/nginx/cert/域名.com.key \
             --fullchainpath /data/nginx/cert/域名.com.pem \
             --reloadcmd     "docker restart nginx"
– reloadcmd:证书安装或更新后,需要执行的cmd命令,我这里重启了docker里的nginx容器,达到证书更新自动重启nginx目的
– /data/nginx/cert:换成你自己想要Copy到的目录

其它命令

# 自动更新acme.sh
acme.sh --upgrade --auto-upgrade

# 强制刷新证书
acme.sh --renew -f -d 域名.com

# 撤销证书
acme.sh --revoke -d 域名.com

# 注册ZeroSSL账号
acme.sh --register-account -m my@example.com --server zerossl

 

分享到:
本文链接:https://blog.renzicu.com/2022/acme-ssl/index.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录