使用acme.sh申请免费SSL证书
简介
acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书,传送门 官方文档
本文使用环境Centos
、Aliyun域名
、已提前申请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 许可协议。转载请注明出处!
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
共有 0 条评论