docker https 证书/多域名通配符自动续期(群晖https证书)

news2025/1/15 23:44:22

本文基于 freessl.cn 申请通配符域名自动续期。

使用docker的原因是为了方便可靠,不会因为不同的操作系统缺包无法安装 acme.sh,也不会在操作系统中留下灿烂内容,acme 版的docker 包含了运行环境。

主要步骤如下:

1、打开 https://freessl.cn/ 官网,注册并登录

在这里插入图片描述

2、进入 ACME自动化 导航菜单,添加证书

在这里插入图片描述

3、配置域名解析

在这里插入图片描述

4、域名解析配置检测通过后,获得签发证书的命令

在这里插入图片描述

5、运行带有 acme.sh 运行环境的 docker 容器

docker run -itd \
-v "/opt/acme.sh":/acme.sh \
--net=host \
--restart=always \
--name=acme \
neilpang/acme.sh \
daemon

其中 /opt/acme.sh 为本地挂载目录,在初次生成证书后,里面会生成证书配置信息和证书文件。

6、运行脚本生成证书

docker exec acme \
acme.sh --issue \
-d demo.com -d *.demo.com \
--dns dns_dp \
--server https://acme.freessl.cn/v2/DV90/directory/xxxxxxxxxxxxxxxxxxxx

这个脚本可以重复执行,如果没有到下次自动续期的时间,它会输出日志提示你。如果需要强制重新生成和签发证书,添加 --force 参数即可。

7、配置自动续期定时任务

将上面的脚本原封不动的配置到系统的定时任务中,可以设置为每周执行一次。

附上 acme.sh 容器的官方连接:https://github.com/acmesh-official/acme.sh/wiki/Run-acme.sh-in-docker

至此结束,以上内容适合所有可以运行 docker 容器的 Linux 平台。


8、群晖补充篇

官方的 acme.sh 对群晖证书替换做了支持,通过追加参数 --deploy-hook synology_dsm 来实现。

这个 hook 的原理就是调用了群晖的 API 来发布证书,因为需要调用 API 需要群晖账号密码的支持,所以要先修改容器添加环境变量参数。

参数说明
SYNO_DID填入获取的 DID (没有设置两步验证的忽略),点击查看获取方法
SYNO_Port填入群晖内网的端口号(默认端口5000可以不提供)
SYNO_Username登录群晖的用户名
SYNO_Password登录群晖的密码
SYNO_Certificate要添加的证书的名字,空字符串(“”)为替换默认证书
SYNO_Create当 SYNO_Certificate 不为(“”)时,需要设置自动创建的证书名
(仅替换证书的可以不设置,第一次设置证书可能会用到)

运行容器的示例:

docker run -itd \
-v "/opt/acme.sh":/acme.sh \
-e SYNO_Username="demo" \
-e SYNO_Password="demo123" \
-e SYNO_Certificate="" \
--net=host \
--restart=always \
--name=acme \
neilpang/acme.sh \
daemon

然后再群晖的定时执行计划中添加任务,如下:

在这里插入图片描述

docker exec acme \
acme.sh --issue \
-d demo.com -d *.demo.com \
--dns dns_dp \
--server https://acme.freessl.cn/v2/DV90/directory/xxxxxxxxxxxxxxxxxxxx \
--deploy --deploy-hook synology_dsm

--deploy 表示需要部署证书到server,--deploy-hook 指定部署到的目标,exec 后面的 acme 是容器的名称。

网上很多帖子是将云平台的账号密码都配置在容器参数中,可以全自动化申请证书,个人不太推荐。虽然这样省去了配置DNS的步骤(这个DNS解析第一次配置一次就行了以后续期也不需要),但是这步省的意义不大且带来了账号信息泄露的风险。更多的时候,域名管理者可以配置一个DNS验证但是他可能更不希望提供账号密码。


(END)

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

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

相关文章

圣诞节学算法---线段树

线段树 快到圣诞节了,圣诞树是不是很漂亮?今天我们就来学习一下它的近亲的线段树 (话说这两玩意好像除了读音相似没啥关系) 引入 例题 1 给定一个数组 aaa 求数组中下标为l−rl - rl−r元素的和 看到这题大家都很容易想到用前缀和以O(n)O(n)O(n)预处…

3.2 多级放大电路的动态分析

一个 NNN 级放大电路的交流等效电路可用图3.2.1所示方框图表示。由图可知,放大电路中前级的输出电压就是后级的输入电压,即 U˙o1U˙i2\dot U_{o1}\dot U_{i2}U˙o1​U˙i2​、U˙o2U˙i3\dot U_{o2}\dot U_{i3}U˙o2​U˙i3​、⋯\cdots⋯、U˙o(N−1)U…

react笔记_07 hooks

什么是hook? 以前我们称函数组件为简单组件,因为函数组件是无状态的(没有state)。 而在React 16.8版本增加了 Hook,它可以让你在不编写 class 组件的情况下,也就是我们可以在函数组件中使用 state 以及其他的 React 特性。 Hook 不能在 c…

5G无线技术基础自学系列 | 5G服务完整性KPI

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 5G服务完整性KPI用来评估5G RAN中终端用…

java: 无效的目标发行版: 17 新建springBoot项目

问题 java: 无效的目标发行版: 17 详细问题 新建springBoot项目,对数据库配置后启动项目,控制台报错 java: 无效的目标发行版: 17 如下图 解决方案 查看JDK版本 (事实上, 该步骤查看本机的已配置环境变量的JDK版本&#xff…

Python基础(十)模块与包

目录 1. 简介 1.1 模块 1.2 包 2. 使用 2.1 创建 2.2 引用 1. 简介 1.1 模块 Python 中一个以 .py 结尾的文件就是一个模块,模块中定义了变量、函数等来实现一些类似的功能。Python 有很多自带的模块(标准库)和第三方模块&#xff0c…

UMC产品UI升级说明

随着产品功能的逐渐完善,一款好的产品需要不断地打磨才能变得更完整、更稳定。所以,UMC作为数通畅联的核心产品,为了满足更多的需求,更好的视觉效果和体验感,一直都在不断地完善迭代。 本次升级主要是针对整体页面进行…

实现股票交易c接口​​​​​​​需要的注意事项有哪些?

实现股票交易c接口需要的注意事项有哪些?最近有很多朋友问小编这个问题,小编今天就说说! 在基类列表中包含接口名称 为每一个接口的成员提供实现 如果类从基类继承并实现了接口,基类列表中的基类名称必须放在所有接口之前。(一个…

PMAC的PVT功能实现解析笔记

从上图中我们可以得到如下信息: 速度截面是一个抛物线 P0P_0P0​、V0V_0V0​是上一次指定的,P1P_1P1​、V1V_1V1​是当前期望的,TA是当前期望的运动时间 A0A_0A0​是上一次计算的,A1A_1A1​是当前计算的,加加速度dA/…

使用 x-sheet 构建在线疫情高峰预测数据表

背景 最近,一位大数据专家通过百度“发烧”的搜索指数、公开的疫情感染人数等指标,计算出每个城市的“超额发烧搜索指数累计面积”,并且通过城市的搜索指数累计增长、累计速度,就可以算出现在每一个有疫情的城市疫情大概的达峰时…

MyBatis-Plus保姆级快速上手教程

为简化开发而生 Mybatis简化JDBC操作 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 1、特性 无侵入:只做增强不做改变,引入它不会对…

都28了,半路转行学编程还来得及吗?

很多新来的粉丝,经常会问到:“我现在xx岁了,学编程晚吗?",“程序员是不是吃青春饭啊,我都没有青春了,还能找到工作吗?”... 其实这类的问题,我以前都已经整理过文章&#xff0…

正点原子-Linux嵌入式开发学习-第二期05

第十三讲:按键实验 1:原理图分析,按键按下低电平进入,不按下高电平 对应的端口为:GPIO1_IO18 复制上一次工程,记得make clean清除上一次的文件 程序编写 1:新建key文件夹并新建bsp_key.c和bsp_…

Scala 高阶函数(二)

一、scala自带高阶函数 概述:可以接收一个函数的函数就是高阶函数,又称为算子 1。map: 将集合中的每一个元素通过指定功能(函数)映射(转换)成新的结果集 val list1 List(1,2,3) val list2 list1.map(v>v*2) println(list2) //List…

[第十二届蓝桥杯/java/算法]D——相乘

🧑‍🎓个人介绍:大二软件生,现学JAVA、Linux、MySQL、算法 💻博客主页:渡过晚枫渡过晚枫 👓系列专栏:[编程神域 C语言],[java/初学者],[蓝桥杯] &#x1f4d6…

C#获取计算机硬件的参数信息

2019年的时候用PowerBuilder写过一个计算机信息收集小程序,《计算机信息收集小程序》,当时是查注册表来实现的。 还可以通过对windows的API调用来做,这个稍微有点麻烦。 使用C#也可以通过三种方式来实现,分别是读取注册表、window…

import语句写烦了,怎么办?

每次写数据相关的代码时都会习惯性地先写一堆import语句,不管用得到用不到,先在文首默一遍再说。 或者: ❞虽说CtrlC和CtrlV也很方便,但是每次都要先“抄一次”也很烦。 那么有没有什么好的解决办法? Python有一个模…

《码出高效:java开发手册》六-数据结构与集合(一)

前言 本章主要是讲数据结构与集合,这章内容涉及到非常基础的知识,内容相对较多,首先从数组讲起,引申到集合框架,之后再到集合源码,最后介绍了高并发集合框架 集合 集合在代码中是collection,…

智牛股_第8章_Sentinel

智牛股_第8章_Sentinel 文章目录智牛股_第8章_Sentinel学习目标第1章 Sentinel集成使用1. 目标2. 步骤3. 实现3.1 生产环境最优配置方案3.2 用户服务集成3.3 熔断规则配置3.4 启动Sentinel监控台3.5 功能使用验证4. 总结第2章 用户注册功能1. 目标2. 步骤3. 实现3.1 用户注册流…

flstudio21版本有什么新功能及免费新插件

全能数字音乐工作站(DAW)编曲、剪辑、录音、混音,23余年的技术积淀和实力研发,FL Studio已经从电音领域破圈,成功蜕变为瞩目的全能DAW,把电脑变成全功能音乐工作室,接下来我们会为您一一展示 2…