使用 acme.sh 签发和自动续期 ssl https 证书
acme.sh 是一个热度非常高的签发和自动续期 https 证书的工具,虽然官网上提供了充分的操作说明,但是不够简洁,本文以在 nginx 中签发和配置http 为例,列出必要的几个简单步骤。
安装
因为网络原因,github 大部分人是不能直接访问的,所以官网的一键安装脚本可能并不好用。推荐自己手工将代码下载下来操作。
1、下载 git 代码
https://github.com/acmesh-official/acme.sh
下载代码》解压缩,文件清单如下:
[root@test acme.sh-master]# ll
total 308
-rwxrwxrwx 1 root root 226257 Dec 11 04:00 acme.sh
drwxrwxrwx 2 root root 4096 Dec 11 04:00 deploy
drwxrwxrwx 2 root root 8192 Dec 11 04:00 dnsapi
-rw-rw-rw- 1 root root 1528 Dec 11 04:00 Dockerfile
-rw-rw-rw- 1 root root 35149 Dec 11 04:00 LICENSE.md
drwxrwxrwx 2 root root 4096 Dec 11 04:00 notify
-rw-rw-rw- 1 root root 22455 Dec 11 04:00 README.md
2、安装acme.sh
指定自己的 Email,安装命令如下:
chmod +x acme.sh
./acme.sh --install -m 365384722@qq.com
按官方说明,安装命令实际上执行了如下3步操作:
- 创建
acme.sh并将其复制到当前用户主目录($HOME):~/.acme.sh/中,以后签发的所有证书和配置也将放置在此文件夹中。 - 创建命令别名:
acme.sh=~/.acme.sh/acme.sh,此后在任何位置都可以直接使用acme.sh命令。 - 创建每日cron作业,以便在需要时检查和续订证书,可以使用
crontab -l查看自动配置的作业内容,你也可以使用crontab -e自定义时间。
cron 内容如下所示:
24 5 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
安装后,如果想让 acme.sh 别名生效,你可能需要关闭当前ssh会话并重新打开它。
3、启用acme的自动升级
acme.sh --upgrade --auto-upgrade
配置自动升级后,查看 ~/.acme.sh/account.conf 可以看到 AUTO_UPGRADE='1' 。
签发证书
官网签发证书的方式主要分为3种:
- 基于 webroot 的方式
- 手工 TXT 域名解析的方式
- 自动 API 的方式
如果你希望以后都能自动续期而不需要人工介入,那么你必须选择基于 API 的方式,前两者本文不赘述,详见官网说明。
acme 支持了很多域名服务商,使用参数 --dns 指定,如下基于阿里云自动的方式进行示例:
1、登录阿里云控制台,记录下 AKID 和 AKSCT。
2、执行两条 export 命令设置临时变量
export Ali_Key="<AKID>"
export Ali_Secret="<AKSCT>"
3、执行签发命令,使用 --dns dns_ali 明确阿里云API通道
./acme.sh --issue --dns dns_ali -d *.demo.com -d demo.com
签发成功后,你可以查看配置文件 ~/.acme.sh/account.conf,会发现该配置文件记录了我们 export 的两个值,之所以记录下来是为了后续自动续签使用。
安装证书到Nginx
如下脚本以 nginx 为例,脚本中设置证书的目标位置、证书更新后需要执行什么命令来刷新 nginx 服务使之生效。
acme.sh --install-cert -d goodcol.com \
--key-file /opt/soft/nginx/ssl/goodcol.com/key.pem \
--fullchain-file /opt/soft/nginx/ssl/goodcol.com/cert.pem \
--reloadcmd "docker exec -it nginx-forward nginx -s reload"
因为我的 nginx 是基于docker 的,所有我的 reloadCmd 是对docker 里面的 nginx 进行 reload,其中证书文件是我 nginx 容器挂在宿主机文件的位置。
其他更多内容,详见官方文档。
(END)
相关文章:
使用 acme.sh 签发和自动续期 ssl https 证书
acme.sh 是一个热度非常高的签发和自动续期 https 证书的工具,虽然官网上提供了充分的操作说明,但是不够简洁,本文以在 nginx 中签发和配置http 为例,列出必要的几个简单步骤。 安装 因为网络原因,github 大部分人是…...
spring重点面试题总结
bean的生命周期 在 Spring 中,BeanDefinition、Bean 实例化、依赖注入、Aware 接口的处理、以及 BeanPostProcessor 的前置和后置处理等,都是 Spring 容器管理 Bean 生命周期的关键部分。下面我将详细解释这些过程。 1. 通过 BeanDefinition 获取 Bean…...
新的一章:codegeex
三层结构的优点:可扩展性,可复用性...
游戏引擎学习第50天
仓库: https://gitee.com/mrxiao_com/2d_game Minkowski 这个算法有点懵逼 回顾 基本上,现在我们所处的阶段是,回顾最初的代码,我们正在讨论我们希望在引擎中实现的所有功能。我们正在做的版本是初步的、粗略的版本,涵盖我们认…...
快速理解类的加载过程
当程序主动使用某个类时,如果该类还未加载到内存中,则系统会通过如下三个步骤来对该类进行初始化: 1.加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个…...
医院跌倒检测识别 使用YOLO,COCO ,VOC格式对4806张原始图片进行标注,可识别病人跌倒,病人的危险行为,病床等场景,预测准确率可达96.7%
医院跌倒检测识别 使用YOLO,COCO ,VOC格式对4806张原始图片进行标注,可识别病人跌倒,病人的危险行为,病床等场景,预测准确率可达96.7% 数据集分割 4806总图像数 训练组70% 3364图片 有效集20&#…...
[Unity Shader] 【游戏开发】【图形渲染】Unity Shader的种类2-顶点/片元着色器与固定函数着色器的选择与应用
Unity 提供了不同种类的 Shader,每种 Shader 有其独特的优势和适用场景。在所有类型的 Shader 中,顶点/片元着色器(Vertex/Fragment Shader)与固定函数着色器(Fixed Function Shader)是两种重要的着色器类型。尽管它们具有不同的编写方式和用途,理解其差异与应用场景,对…...
浏览器端的 js 包括哪几个部分
一、核心语言部分 1. 变量与数据类型 变量用于存储数据,在 JavaScript 中有多种数据类型,如基本数据类型(字符串、数字、布尔值、undefined、null)和引用数据类型(对象、数组、函数)。 let name "…...
GoogLeNet网络:深度学习领域的创新之作
目录 编辑 引言 GoogLeNet的核心创新:Inception模块 Inception模块的工作原理 1x1卷积:降维与减少计算量 1x1卷积的优势 深度分离卷积:计算效率的提升 深度分离卷积的实现 全局平均池化:简化网络结构 全局平均池化的作…...
深入C语言文件操作:从库函数到系统调用
引言 文件操作是编程中不可或缺的一部分,尤其在C语言中,文件操作不仅是处理数据的基本手段,也是连接程序与外部世界的重要桥梁。C语言提供了丰富的库函数来处理文件,如 fopen、fclose、fread、fwrite 等。然而,这些库…...
Java序列化
Java序列化 简单来说: 序列化是将对象的状态信息转换为可以存储或传输的形式(如字节序列)的过程。在 Java 中,通过序列化可以把一个对象保存到文件、通过网络传输到其他地方或者存储到数据库等。最直接的原因就是某些场景下需要…...
基坑表面位移沉降倾斜自动化监测 非接触式一体化解决机器视觉
基于变焦视觉位移监测仪的基坑自动化监测新方案是一种集成了光学、机械、电子、边缘计算、AI识别以及云平台软件等技术的自动化系统。该方案利用变焦机器视觉原理,结合特殊波段成像识别技术和无源靶标,实现了非接触式大空间、多断面、多测点的高精度水平…...
提升效率:精通Windows命令行的艺术
文章目录 引言1. 基本目录操作命令dir:列出目录内容cd:更改目录mkdir 和 rmdir:创建和删除目录 2. 文件操作命令copy:复制文件或目录move:移动或重命名文件/目录del:删除文件 3. 文件查看命令typeÿ…...
ESP32-S3-devKitC-1 点亮板上的WS2812 RGB LED
ESP32-S3-devKitC-1 板上自带了一个RGB LED,型号为 WS2812。 RGB LED 在板上的位置如下图所示。 为了点亮这个WS2812,需要确定这颗RGB LED连接到哪个GPIO上了。 下面是确定GPIO管脚的过程: 1、根据原理图 2、根据PCB布局图: 程…...
python调用matlab函数(内置 + 自定义) —— 安装matlab.engine
文章目录 一、简介二、安装matlab.engine2.1、基于 CMD 安装2.2、基于 MATLAB 安装(不建议) 三、python调用matlab函数(内置 自定义) 一、简介 matlab.engine(MATLAB Engine API for Python):…...
CAD c# 生成略缩图预览
代码如下: using (Transaction tr currentdb.TransactionManager.StartTransaction()){//当前数据库开启事务using (Database tempdb new Database(false, true)) //创建临时数据库(两个参数:是否创建符号表,不与当前文档关联){try{Bitmap …...
端点鉴别、安全电子邮件、TLS
文章目录 端点鉴别鉴别协议ap 1.0——发送者直接发送一个报文表明身份鉴别协议ap 2.0——ap1.0 的基础上,接收者对报文的来源IP地址进行鉴别鉴别协议ap 3.0——使用秘密口令,口令为鉴别者和被鉴别者之间共享的秘密鉴别协议ap 3.1——对秘密口令进行加密&…...
汽车电子元件的可靠性保障:AEC-Q102认证
AEC-Q102标准的起源与价值 随着汽车电子系统的日益复杂,电子器件必须能够在极端的温度、湿度、振动和电磁干扰等恶劣条件下保持性能。AEC-Q102标准由汽车电子委员会(AEC)制定,专门针对LED、激光二极管和光电二极管等光电器件&…...
主成分分析法大全(包括stata+matlab)
数据简介:主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。在实际课题中,为了…...
ubuntu+ros新手笔记(五):初探anaconda+cuda+pytorch
深度学习三件套:初探anacondacudapytorch 系统ubuntu22.04 1.初探anaconda 1.1 安装 安装过程参照【详细】Ubuntu 下安装 Anaconda 1.2 创建和删除环境 创建新环境 conda create -n your_env_name pythonx.x比如我创建了一个名为“py312“的环境 conda cre…...
喜马拉雅音频下载器:三分钟学会下载付费专辑的完整方案
喜马拉雅音频下载器:三分钟学会下载付费专辑的完整方案 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否遇到过这…...
ChipDNA PUF技术:从晶体管失配到硬件安全密钥的工程实践
1. 项目概述:当芯片拥有“DNA”,嵌入式安全进入新纪元在嵌入式系统设计领域,安全从来不是一个可以事后弥补的附加功能,而是必须从硬件层面开始构建的基石。随着物联网设备的爆炸式增长,从智能门锁到工业控制器…...
NY352固态MT29F32T08GWLBHD6-24QJ:B
NY352固态MT29F32T08GWLBHD6-24QJ:B从你的笔记本到高性能服务器,从智能仪表到工业机器人,一块灵魂级的存储芯片往往决定了系统的稳定与寿命。在众多闪存颗粒中,MT29F32T08GWLBHD6-24QJ:B 无疑是最具代表性的存在之一。它看似不起眼࿰…...
RT-Thread软定时器漂移问题深度解析与实战优化
1. 项目概述:从一次线上告警说起那天下午,系统监控平台突然弹出一连串的告警,核心业务模块的周期性任务执行间隔出现了肉眼可见的抖动,从预期的100毫秒,漂移到了130毫秒甚至更长。排查了一圈硬件、中断和任务调度&…...
置信区间不只是统计学:如何用它给你的深度学习模型预测‘上保险’?(以目标检测为例)
置信区间在深度学习中的实战应用:为目标检测模型预测加装"安全气囊" 当自动驾驶汽车在雨中识别模糊的交通标志时,当医疗AI系统标记疑似肿瘤区域时,模型输出的不仅是"是什么",更关键的是"有多确定"。…...
对抗攻击下SGD收敛性分析与量子计算优化
1. 对抗攻击下的随机梯度下降收敛性解析随机梯度下降(Stochastic Gradient Descent, SGD)作为机器学习优化的核心算法,其鲁棒性在对抗环境下显得尤为重要。当梯度估计被恶意扰动时,传统收敛理论需要重新审视。我们通过引入攻击误差…...
STM32 ADC实战避坑:轮询、中断、DMA到底怎么选?我的项目血泪经验
STM32 ADC实战避坑:轮询、中断、DMA到底怎么选?我的项目血泪经验 在嵌入式开发中,ADC(模数转换器)是连接模拟世界与数字世界的关键桥梁。无论是电池电压监测、环境光传感还是工业控制中的各种模拟量采集,AD…...
CANN/cann-learning-hub:Swan LLM 大模型实战课程
【免费下载链接】cann-learning-hub CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。 项目地址: https://gitcode.com/cann/cann-learning-hub SwanLab x CANN 社区合作课程 Swa…...
5分钟快速上手SignTools:自托管iOS应用签名平台完整教程
5分钟快速上手SignTools:自托管iOS应用签名平台完整教程 【免费下载链接】SignTools ✒ A free, self-hosted platform to sideload iOS apps without a computer 项目地址: https://gitcode.com/gh_mirrors/si/SignTools 想要在iOS设备上自由安装第三方应用…...
Burp Suite新手必看:用Target Scope精准抓包,告别YouTube和Google Analytics的干扰流量
Burp Suite实战指南:用Target Scope打造无干扰渗透测试环境 渗透测试过程中,你是否曾被海量的无关HTTP请求淹没?当你在Burp Suite的HTTP History中翻找关键请求时,YouTube的广告追踪、Google Analytics的数据收集以及其他第三方脚…...
