使用acme.sh自动化申请SSL证书

内容导读

  1. acme.sh的介绍
  2. 我所使用的环境
  3. acme.sh安装与使用
  4. 配置NginX
  5. 相关的文件与资料

1.acme.sh的介绍

acme.sh 是一个开源的 ACME 协议客户端工具,用于自动化申请、更新和部署 SSL/TLS 证书。它支持多种证书颁发机构(CA),包括 Let's Encrypt、ZeroSSL、Buypass、SSL.com 和 Google Public CA。默认情况下,acme.sh 使用 ZeroSSL 作为证书颁发机构。

2.我所使用的环境

阿里云服务器系统为CentOS Stream 8;代理和端口转发使用NginX版本为1.14.1;域名与DNS解析服务为腾讯云

3.acme.sh安装与使用

3.1使用命令安装acme.sh脚本,注意下方的邮箱记得换成自己的。

curl https://get.acme.sh | sh -s email=rxu2003@126.com

3.2更新系统脚本环境使之能够识别acme命令

source ~/.bashrc
如果你使用的是 zsh则使用下面的命令,重新打开终端也是可以的
source ~/.zshrc

3.3(可选项,按自己意愿操作)更换CA的服务商到 Let's Encrypt,acme.sh默认使用的证书颁发机构(CA)是 ZeroSSL个人感觉不好使

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

3.4去到你的DNS服务商哪里获取相关API权限,我这里是使用的是腾讯云所以要获取SecretId 和SecretKey(与阿里云不一样,下方有相关链接)
登陆腾讯云“控制台”点击左上角的“三个横线”左上角的三个横线在所有云产品里搜索“访问管理”,并进入

搜索与进入访问管理

进入后找到“访问密钥”下的“API密钥管理”点击“新建密钥”注意“保存”你的密钥和ID

注意保存SecretId 和SecretKey,因为就出现一次

3.5我们切回终端,设置环境变量,使 acme.sh可以访问这些凭证,下面的命令是没有返回值的

export Tencent_SecretId="<你的 SecretId>"
export Tencent_SecretKey="<你的 SecretKey>"

例子:

3.6重载环境变量

source /etc/profile

3.7使用acme.sh 申请证书(注意将git.rongxinyu2003.icu改成你自己的域名)

acme.sh --issue --dns dns_tencent -d git.rongxinyu2003.icu

成功后如下图所示,“Your cert is in”是你证书的保存目录,“Your cert key is in”是你私钥的保存目录(不建议直接使用)

3.8复制ssl证书并设置重起规则(官方建议复制到别的地方保存,以防acme.sh目录的更改)

acme.sh --install-cert -d git.rongxinyu2003.icu \
--key-file /etc/nginx/SSL证书/key.pem \
--fullchain-file /etc/nginx/SSL证书/cert.pem \
--reloadcmd "service nginx force-reload"

请将git.rongxinyu2003.icu替换为你的域名,“/etc/nginx/SSL证书/”替换为存放证书的实际路径,service nginx force-reload替换为你使用的 web 服务重载命令。

3.9等个几分钟,强制执行更新看看能不能自动的申请到SSL证书(注意替换为自己的域名)

acme.sh --renew -d git.rongxinyu2003.icu --force

4.配置NginX

4.1打开nginx的配置文件(正常安装就用下面命令)

vim /etc/nginx/nginx.conf

4.2将上面复制的ssl证书存放目录粘贴到ssl_certificatessl_certificate_key中如下图

4.3重起nginx服务

systemctl restart nginx.service

4.4打开你的网站看看是否生效

5.相关的文献与资料

如何使用acme.sh与阿里云DNS自动签发Let’s Encrypt的免费数字证书 - 下一朵云

https证书一键自动续期,帮你解放90天限制 - 程序员博博 - 博客园

云解析 DNS acme.sh 自动解析并申请证书-实践教程-文档中心-腾讯云

dnsapi · acmesh-official/acme.sh Wiki · GitHub(acme.sh如何使用DNS自动化API)

Nginx 配合 acme.sh 申请 ssl 证书并部署和自动续期 – PP's Blog

使用 acme.sh 申请 SSL 证书 - oldj's blog

使用acme.sh自动申请、续期、部署免费的SSL证书 - RidingWind - 博客园

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注