首页 > 其他分享 >[转]acme自动化---免费SSL证书申请并自动续期

[转]acme自动化---免费SSL证书申请并自动续期

时间:2024-03-01 14:55:06浏览次数:31  
标签:acme 证书 -- --- SSL sh 续期 com

原文地址:acme自动化---免费SSL证书申请并自动续期_create new order error. le_orderfinalize not found-CSDN博客

背景:

各CA厂家都在缩短免费证书的有效时间,包括现在与阿里合作的,普遍只有90天,这样如果频繁手动申请更换就很繁琐,正好github上有一个star数很高的工具acme.sh,有官方中文说明.

还有一个申请免费证书的网站https://freessl.cn/,上面还介绍了其他自动续期的方法,不过上面的文档写的不是很清晰,建议找相应工具的官方wiki来使用;网站上还有提供一年有效期免费证书的CA厂商TrustAsia ,怕麻烦的也可以使用.

重点:

1.使用 github上的脚本工具 acme.sh

2.有官方中文说明配置

3.新版本默认设置的CA (ZeroSSL)不太稳定,可更换为稳定的Let's Encrypt(对频繁申请有限制,但一般使用足够)

---------------------------------------------------------------------------------------------------------------------------------------------------

acme.sh 仓库地址:acme.sh
acme.sh 中文说明:官方中文说明
各个 dnsapi 说明:dnsapi

一、安装并配置 acme.sh
安装 acme,后面[email protected]换成自己的邮箱

curl https://get.acme.sh | sh -s [email protected]

如果上面官方下载地址失败 或者 太慢,可以选用国内的备用地址

curl https://gitcode.net/cert/cn-acme.sh/-/raw/master/install.sh?inline=false | sh -s [email protected]


然后在 root 目录下ls -a就可以看到有一个.acme.sh的文件夹,进入后里面有个 account.conf 配置文件,里面有前面安装时填写的邮箱,不知道有什么用,估计到时候会给通知什么的吧

进入.acme.sh 目录后使用下面命令开启 acme 自动更新

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


在这里最好先切换一下证书类型,看下面续期时出现过问题

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


二、配置 DNS API
通过官方说明文档可知,acme.sh 申请证书有两种方式,http 和 dns 验证

http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证. 然后就可以生成证书了
手动 dns 方式, 手动在域名上添加一条 txt 解析记录, 验证域名所有权
第一种方便一些,只需要一条命令就完成了,前提是需要有服务器并且在此服务器中搭建了网站
第二种更灵活一些,只需要有域名手动添加验证即可,不需要服务器,但是这种方式需要配置 Automatic DNS API,否则 acme.sh 将无法自动更新证书,此外配置了 DNS API 就不需要手动添加验证了

我使用的是 dnspod,所以这里写一下 dnspod 的,dnspod 的 token 生成页面,也可以进入dnspod 网站,点击右上角头像,然后点击 API 密钥,选择 DNSPod Token,就到了 dnspod 的 token 生成页面

点击创建密钥,输入获取到 ID 和 token,保存下来


然后回到服务器配置刚才拿到的密钥

export DP_Id="密钥ID"
export DP_Key="密钥token"


三、申请证书
使用下面命令申请证书,mydomain.com 就是需要申请证书的域名,支持通配符域名

./acme.sh --issue --dns dns_dp -d mydomain.com -d www.mydomain.com

证书很快就申请下来了,这里给出的 api id 和 api key 会被自动记录下来, 将来你在使用 dnspod api 的时候, 就不需要再次指定了,直接生成就好了


申请的证书默认是放在/root/.acme.sh/目录下的,如果要在申请证书更改证书存放目录可以加入--cert-home参数,使用下面命令申请证书,其中 mydomain.com 是需要申请证书的域名,sslpath 是存放证书的目录

./acme.sh --issue --dns dns_dp -d mydomain.com --cert-home sslpath

四、删除证书
使用下面命令删除证书,mydomain.com 就是需要删除证书的域名,支持通配符域名

./acme.sh --remove -d mydomain.com


四、使用
看上面申请证书后给的路径
第一个是证书位置
第二个是证书密钥位置
可以直接使用,我这里使用的是宝塔面板,所以直接配置 ssl 就行了,虽然是写需要 pem 格式,但是上面 cer 就可以直接使用


保存之后剩余 3 个月左右到期了,按理说用这个 acme.sh 到了 30 天以内就会自动续期


上面是重新写的,以下是之前写的,记录了一个问题没有删除,之前写的使用了freeSSL,但是使用acme.sh其实是不需要使用其他的配合,之前也是先接触到freeSSL,所以按照freeSSL教程做的,实际上使用其他的还可能会产生其他不太好的问题,之前有记录,但是这次重写删掉了

时隔两个月更新
上面可以看到申请的时候是 Jul 月也就是 7 月,也就是说到 10 月份到期,那么在 9 月份的时候应该会自动续期

上去之后看一眼,cer 是证书文件,key 是私钥文件,都没有更新,变得是 csr 文件,这个文件是申请前创建的,与这个无关,但是可以看出是有自动续期,但是没有续期成功


我这里使用下面命令手动续期一下,看看是哪里的问题

acme.sh --cron --debug 2
结果后面给我报了什么连接超时,再次查看文件还是那三个变了,其他的没变


看网上说有时候连接超时是因为 ZeroSSL 的原因,下面说一下

目前 acme.sh 支持 Let’s Encrypt、Buypass、ZeroSSL、SSL.com 和 Google Public CA,默认使用 ZeroSSL,如果需要更换可以使用下面命令:

切换 Let's Encrypt
acme.sh --set-default-ca --server letsencrypt
切换 Buypass
acme.sh --set-default-ca --server buypass
切换 ZeroSSL
acme.sh --set-default-ca --server zerossl
切换 SSL.com
acme.sh --set-default-ca --server ssl.com
切换 Google Public CA
acme.sh --set-default-ca --server google

我这里更换为 Let’s Encrypt


然后再手动续期一下就正常了


这里可以看到 key 还是没有变化的,但是证书是变了的,可以使用新的证书和这个 key


测试了一下更换证书后又是 89 天了


然后因为我这里使用的是宝塔面板,宝塔面板在使用 ssl 时会把填写的内容生成一个证书并保存到/www/server/panel/vhost/cert/网站 目录下,因此 acme 自动续期后宝塔面板的 ssl 并不会使用续期后的证书,这里只需要把网站的配置文件改一下就行


把这两行路径改为 acme.sh 自动续期的证书和私钥的路径即可
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/sywdebug/article/details/125852872

其他参考文章:

从 acme.sh v3.0 说说 ZeroSSL - 知乎

 

标签:acme,证书,--,---,SSL,sh,续期,com
From: https://www.cnblogs.com/dirgo/p/18047066

相关文章

  • 【2024-02-22】金石为开
    20:00人干起活来时他就活起来,像春天的一株树,他活着,而不仅仅在干活。                                                 ——D·H·劳伦斯今天是我们老家镇上的一个国家......
  • VMware vSphere 8.0 Update 2b 下载 - Broadcom VMware 首次重大更新
    VMwarevSphere8.0Update2b下载-BroadcomVMware首次重大更新VMwarevSphere8.0Update2b下载-企业级工作负载平台2月29日(北京时间3月1日),VMwarebyBroadcom停更5个月后,终于发布了首次重大更新!ESXi8.0U2&vCenterServer8.0U2请访问原文链接:https:......
  • 洛谷题单指南-二分查找与二分答案-P2678 [NOIP2015 提高组] 跳石头
    原题链接:https://www.luogu.com.cn/problem/P2678题意解读:最短跳跃距离越大,要移走的石头就越多,因此可以根据最短跳跃距离的不同把情况分为两类:移走的石头数<=M、移走的石头数>M,对最短跳跃距离二分即可。解题思路:二分的判定条件如下:对于给定最短跳跃距离,需要计算移走的石头数,......
  • Vue学习笔记30--v-pre
    v-pre指令:1.跳过其所在节点的编译过程2.可利用v-pre跳过:没有使用指令语法、没有使用插值语法点节点,会加快编译。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-s......
  • Discrete Math (-OH edition)
    离散数学(信息与计算导论版)Zsir:grouptheory/numbertheorynoconstraintsYuanZhang、PenghuiYao:graphtheory(8weeks&1quizeach)probablyhw,check-in,exams(noguaranteefromZsir)class01,intro(Zsir)MostlyabstractalgebraDefinitionsBinaryoper......
  • faster-fifo:C++实现的python多进程通信队列 —— 强化学习ppo算法库sample-factory的C
    项目地址:https://github.com/alex-petrenko/faster-fifo需要注意,该项目给出了两种安装方法,一种是pip从pypi官网安装,一种是从GitHub上的源码安装;经过测试发现这个项目维护程度较差,因此pypi官网上的项目比较落后,因此不建议使用pypi上的安装,而是进行源码编译安装。给出源码编......
  • Qt - 常用快捷键
    QT快捷键1、Esc切换到代码编辑状态2、F1查看帮助(选中某一类或函数,按下F1,出现帮助文档)3、F2在光标选中对象的声明和定义之间切换(和Ctrl+鼠标左键一样的效果,选中某一类或函数,按下F2,迅速定位到该类或函数声明的地方或被调用的地方)4、F3查找下一个5、F4头文件和源文件之间......
  • u-form里的必填不显示“*”
    u-form-item设置required为true,不显示‘*’ 尝试给u-form一个margin样式,只给margin-left也可以 ‘*’出现了,问题解决   ......
  • MDS300-16-ASEMI整流模块MDS300-16参数、封装、尺寸
    编辑:llMDS300-16-ASEMI整流模块MDS300-16参数、封装、尺寸型号:MDS300-16品牌:ASEMI封装:M25最大重复峰值反向电压:1600V最大正向平均整流电流(Vdss):300A功率(Pd):大功率芯片个数:6引脚数量:5类型:模块、大功率正向浪涌电流:500A正向电压:1.35V最大输出电压(RMS):封装尺寸:如图工......
  • VMware ESXi 8.0U2b 发布下载 - Broadcom VMware 首次重大更新
    VMwareESXi8.0U2b发布下载-BroadcomVMware首次重大更新2月29日(北京时间3月1日),VMwarebyBroadcom停更5个月后,终于发布了首次重大更新!同步发布Dell和HPE等OEM定制版镜像请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u2/,看最新版。原创作品,转载请......