如何用ACME.SH实现SSL证书自动化管理?

news2024/9/23 1:40:29

在上篇《免费SSL证书有效期缩短至90天,该如何应对?》中,想必大家都已经get到了——建站必备四件套之SSL证书的有效期不断缩短已成不可逆的趋势。

这一趋势下,如何有效管理SSL证书成了一道难题。有机智的小伙伴反馈,使用ACME.SH就能实现SSL证书的无限“续杯”啦!

db12f8d37c3c56ad0d59de12cfaedd52.jpeg

那什么是ACME.SH?怎么用它来申请并管理SSL证书?它有哪些优势和不足?带着这些疑问让我们来一探究竟~

01

什么是ACME.SH?

ACME(Automatic Certificate Management Environment)即自动证书管理环境,是一种用于自动化管理和获取SSL证书的协议。ACME.SH则是常见的ACME客户端之一。

ACME.SH是一个轻量级Shell脚本,支持自动申请和续签证书,兼容多种DNS提供商和Web服务器。

如果你拥有一定的技术实力,并且喜欢各种“折腾”,那么用ACME.SH来管理SSL证书会是个不错的选择。

a27f36fc819d3ceee943618a1593f6e4.jpeg

通过使用ACME.SH,您可以轻松地为您的网站实现SSL证书的无限“续杯”,确保网站始终保持安全。此外,ACME.SH的自动续订功能可以节省手动续订证书的时间和精力,无需担心SSL证书的到期和续订问题。

除了自动续订功能外,ACME.SH还提供了很多其他功能和选项,例如DNS验证、通配符证书和与其他工具和服务的集成。使您能够灵活地配置和管理SSL证书,满足您的特定需求。

02

如何使用ACME.SH管理证书

想要使用ACME.SH实现SSL证书的无限“续杯”,你需要在终端执行一些特定命令。

■ 申请安装证书

第一步,需要安装ACME.SH(可通过官网下载)

在服务器上通过以下命令安装ACME.SH:

curl https://get.acme.sh | sh

第二步,配置环境

设置环境变量以便ACME.SH识别你的域名:

export DOMAIN="yourdomain.com"

第三步,申请证书

一般有两种申请方法:

1、如果使用HTTP验证:

acme.sh --issue --webroot /path/to/webroot -d $DOMAIN

2、如果使用DNS验证:

acme.sh --issue --dns dns_cf -d $DOMAIN

这里以腾讯云为例:

如果你的域名在在腾讯云,使用类似的命令如下:

acme.sh --issue --dns dns_tencent -d example.com -d *.example.com -d 
a.com --server https://acme-v02.api.letsencrypt.org/directory

dns dns_tencent:使用腾讯云dns插件,需要配置环境变量,下面配置环境变量的命令仅在当前窗口有效,请根据自己的服务器配置永久生效的环境变量

export Tencent_SecretId="<id>"
export Tencent_SecretKey="<key>"

第四步,安装证书

将证书安装到Web服务器(例如Nginx):

acme.sh --install-cert -d $DOMAIN \
--key-file /path/to/keyfile \
--fullchain-file /path/to/fullchainfile \
--reloadcmd "service nginx reload"

■ 实现自动续期

ACME.SH会自动检查证书的到期日期并在必要时进行续期。可通过以下命令手动触发续期测试:

acme.sh --renew -d $DOMAIN --force

你也可以添加定时任务(cron job)以确保定期检查和续期:

crontab -e

在打开的crontab文件中添加以下行:

0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

以上是ACME.SH使用流程的简单介绍,可点击查看详细指引。

03

ACME的适用场景

前面提到,ACME.SH作为一个强大且实用的证书管理工具,能通过一些指令实现证书的自动申请、安装和续期,支持多种验证方式,具有极高的灵活性。当然,最香的还是因为它免费。

912f7329805b2a1903d02ddc7b1701ec.png

然而,直呼ACME.SH真香的同时,它也存在一些限制和不足。

1、支持的证书类型有限

ACME.SH通常只能签发DV(域名验证)证书,不支持信任度更高的OV(组织验证)和EV(扩展验证)证书。

此外,ACME.SH也主要用于签发免费的SSL证书,而不常用于付费证书的申请和管理。

2、具有一定的技术门槛

使用ACME.SH管理SSL证书,需要通过命令行完成。这对技术要求较高,复杂的配置过程可能让人望而却步。

加上续期证书需要设置脚本的定时任务,这一过程相对复杂,需要手动确认和管理,如果续期过程出现问题,可能导致证书过期,也带来安全风险。

传统型SSL证书的证书私钥和公钥可以直接下载到本地,直接上传到云平台绑定对应的云资源使用(例如绑定负载均衡、边缘加速产品等),通过ACME申请的证书私钥保存在客户端,无法直接上传到云平台使用。

3、存在一定的安全风险

在服务器上配置密钥存在一定的安全风险。如果密钥泄露,可能会影响整个系统的访问控制权,增加安全隐患。

其次,ACME.SH本身没有内置的监控功能,无法实时监控证书的状态和续期情况。如果出现证书过期或续期失败的情况,用户可能无法及时发现并处理,安全风险大大增加。

由此看来,ACME.SH更适合一些开发者,技术爱好者去使用。如果你没有一定的技术能力,对安全性有更高的要求,追求更加便捷的操作,使用ACME.SH管理SSL证书可能并非是最佳选择。

04

一键HTTPS新品上线

针对上述情况,D妹更推荐使用腾讯云推出的“一键HTTPS(基础版)”,

一键HTTPS是腾讯云SSL证书与Web应用防火墙(WAF)合作开发的快速HTTPS方案,你无需进行繁琐的SSL证书部署操作,即可实现网站从HTTP到HTTPS升级,点击了解更多。

对比ACME.SH来看: 

主要特点一键HTTPS基础版
ACME
适用人群‍全部用户程序员
维护成本

自动化配置、工作量小

脚本编写、定时任务设置、工作量大

部署流程

无需部署SSL证书

命令行、过程复杂

自动续期

一键自动续期

通过命令行实现

风险管理操作

简化配置、自动化功能、降低人为操作风险

手动输入命令和编辑配置文件、增加操作性事故风险

监测

默认到期提醒

无监控功能、用户需要依赖额外的工具和手动监控

用户界面

可视化的用户界面

缺乏直观的图形界面

如果你缺乏相关技术知识,并且需要更高的安全性、更长的证书有效期、以及更全面便捷的服务保障,一键HTTPS会是一个不错的选择。

>>早鸟福利,一键HTTPS 1折起,9.9元/月

ceff6e1ec0810511a3448c7b7599337c.gif

随着SSL证书有效期不断缩短的趋势,免费SSL证书的有效期已经缩短到90天,这意味着每三个月就需要执行一次更新。一旦忘了及时更新,很有可能会对自己的业务造成不可预计的影响。

希望大家都可以找到适合自己的证书管理方式,以便应对SSL证书有效期不断缩短带来的影响,确保你的网站始终保持安全。

推荐阅读:

什么是SSL证书?为什么要买SSL证书?

SSL证书怎么选?免费证书和付费证书有什么区别?

为什么买了SSL证书网站还是显示不安全?SSL证书如何部署?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang(go语言)打包成带图标的 exe 可执行文件

目录 1、准备 ico 图标 2、生成 syso 文件 3、打包 4、效果 1、准备 ico 图标 2、生成 syso 文件 创建 main.rc 文件&#xff0c;rc文件的名称main 与项目根目录下 main.go的 main 同名 IDI_ICON1 ICON "favicon.ico" cmd 窗口运行命令 windres -o main.syso main…

从零开始编程:Go语言真的适合新手吗?

Go语言自诞生以来&#xff0c;一直以其简洁、高效和面向工程的特性受到开发者的青睐&#xff0c;尤其是在后端开发和并发编程方面&#xff0c;Go表现出了独特的优势。然而&#xff0c;作为一门以简单著称的语言&#xff0c;它是否适合作为编程初学者的第一门语言呢&#xff1f;…

电脑换硬盘怎么全盘克隆?轻松实现数据迁移

随着科技的不断发展&#xff0c;电脑硬盘的存储容量和读写速度也在不断提升。为了获得更好的电脑使用体验&#xff0c;许多用户会选择更换更大容量、更高效的硬盘。然而&#xff0c;在更换硬盘的过程中&#xff0c;一个关键的问题摆在了我们面前&#xff1a;如何将旧硬盘中的所…

一文掌握 Go 内存对齐

往期精选文章推荐&#xff1a; 深入理解 go map go 常用关键字 深入理解 Go 数组、切片、字符串 深入理解channel 深入理解 go context 深入 go interface 底层原理 深入理解 go reflect 深入理解 go unsafe 前言 在前面的文章 《深入理解 go reflect》和 《深入理解…

还在拼接字符串生成XML?(Java)

FreeMarker是一个功能强大的Java模板引擎&#xff0c;广泛应用于生成动态内容&#xff0c;如HTML、XML和其他文本格式。本文将介绍FreeMarker的基本使用方法&#xff0c;并提供一个更丰富的XML模板示例&#xff0c;以及模板标签和标识的含义。 1. 引入依赖 <dependency>…

Redis持久化RDB/AOF

一、RDB RDB&#xff08;Redis DataBase&#xff09; &#xff1a;RDB 持久性以指定的时间间隔执行数据集的时间点快照&#xff0c;就是把某一刻的数据和状态以文件的形式写到磁盘上。这个快照文件称为RDB文件&#xff08;dump.rdb&#xff09;。 自动触发 Redis7版本&#xff…

Jira使用指南(高级搜索JQL/统计/面板设计)

1.Jira使用指南 Jira使用指南.pdf 上面的pdf比较详细的介绍了Jira的使用&#xff0c;目录如下&#xff1a; 或者从Jira的中文官网获得更多的使用指南 JIRA入门教程 1.1JIRA如何根据过滤出我关注的单子 https://www.cnblogs.com/wzxbro/p/17203914.html 登录JIRA平台&#…

利用子域的System权限通往父域

前言 最近翻阅笔记发现一篇文章提到通过子域的System权限可以突破获取到父域权限&#xff0c;本文将对此技术进行尝试复现研究。 利用分析 环境信息&#xff1a; 子域&#xff1a;187、sub.cs.org 父域&#xff1a;197、cs.org首先通过在子域的域控机器上打开mmc.exe->连…

Git 版本控制操作

1. 版本回退 Git 能够管理⽂件的历史版本&#xff0c;这是版本控制器重要的能⼒。如果有⼀天你发现之前前的⼯作做的出现了很⼤的问题&#xff0c;需要在某个特定的历史版本重新开始&#xff0c;这个时候&#xff0c;就需要版本回退的功能了。 执⾏ git reset 命令⽤于回退版…

Radiance Field Learners As UAV First-Person Viewers 翻译

作为无人机第一人称视角的辐射场学习者 引言。第一人称视角&#xff08;FPV&#xff09;在无人机飞行轨迹的革新方面具有巨大的潜力&#xff0c;为复杂建筑结构的导航提供了一条令人振奋的途径。然而&#xff0c;传统的神经辐射场&#xff08;NeRF&#xff09;方法面临着诸如每…

Python 爬虫入门(十二):正则表达式「详细介绍」

Python 爬虫入门&#xff08;十二&#xff09;&#xff1a;正则表达式 前言一、正则表达式的用途二、正则表达式的基本组成元素2.1 特殊字符2.2 量词2.3 位置锚点2.4 断言2.5 字符集2.6 字符类2.6.1 基本字符类2.6.2 常见字符类简写2.6.3 POSIX字符类2.6.4 组合使用 三、 正则表…

用Python移除PowerPoint演示文稿中的所有超链接

在某些PPT使用场景中&#xff0c;比如需要打印幻灯片或者超链接已失效时&#xff0c;演示文稿中的超链接可能会成为一种干扰。这时我们需要移除PowerPoint演示文稿中的超链接&#xff0c;以确保演示的连贯性和专业性。通过使用Python&#xff0c;我们可以高效地批量处理这一任务…

Java | Leetcode Java题解之第365题水壶问题

题目&#xff1a; 题解&#xff1a; class Solution {public boolean canMeasureWater(int x, int y, int z) {if (x y < z) {return false;}if (x 0 || y 0) {return z 0 || x y z;}return z % gcd(x, y) 0;}public int gcd(int x, int y) {int remainder x % y;w…

提升录制效率,这些录屏软件快捷键你不可不知

我们工作、学习及娱乐中不可或缺的工具有很多&#xff0c;别的不知道肯定有录屏工具的一席之地吧。如果平常频繁的使用这个工具想要它更高效那不妨试试使用录屏快捷键&#xff0c;这次我们来讨论下大家都在用的那些录屏工具吧。 1.福昕录屏大师 链接&#xff1a;www.foxitsof…

案例分享—国外简洁UI设计界面赏析

简洁的页面遵循“少即是多”的设计哲学&#xff0c;强调通过精简元素、色彩和布局来突出核心功能&#xff0c;使设计作品更加直观易用&#xff0c;提升用户体验&#xff1b; 深受现代主义与极简主义思潮影响&#xff0c;这些流派鼓励去除冗余&#xff0c;追求形式与功能的完美结…

Stable Diffusion 与 DALL·E3 的深度解析

一、Stable Diffusion 的全方位解读 Stable Diffusion 是一款令人瞩目的 AI 绘画工具&#xff0c;其显著特点之一便是开源免费。这意味着用户无需支付费用即可自由使用和修改&#xff0c;为广大创作者提供了极大的便利。然而&#xff0c;要想充分发挥其功能&#xff0c;对电脑…

鸿蒙Harmony编程开发:HTTPS服务端证书四种校验方式

如果你还是使用HttpRequest的话&#xff0c;答案是否定的。但是&#xff0c;鸿蒙开发者很贴心的推出了远场通信服务&#xff0c;可以使用rcp模块的方法发起请求&#xff0c;并且在请求时指定服务端证书的验证方式&#xff0c;关键点就在SecurityConfiguration接口上&#xff0c…

K8S故障排查可视化指南 —— 筑梦之路

在线查看 中文版&#xff1a;http://114.132.181.71:8080/book/71 英文版&#xff1a;http://114.132.181.71:8080/book/70 A visual guide on troubleshooting Kubernetes deployments

Python二级(易错点讲解)

今天在做真题时&#xff0c;遇到了不少坑的地方&#xff0c;跟大家一起分享&#xff0c;感谢大家观看和关注。 祝大家都能在20多天后顺利通过Python二级。 一.continue循环 大家都知道continue关键字在编程中用于跳过当前循环的剩余迭代并直接开始下一次迭代。 好&#xff0c;…

怎么整合spring security和JWT

什么是spring security spring security是一个安全框架,它里面有过滤器链,可以多次过滤,其实他可以给前端的cookie传入一个jsessionid,都可以不使用jwt也能完成校验 第一步:导入依赖 <!-- springboot security --> <dependency><groupId>org.springframew…