当前位置: 首页 > news >正文

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

本文基于 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)

相关文章:

  • 网站建设业务介绍/营销策划经典案例
  • 品牌网站建设方/苏州做网站的专业公司
  • 怎么查有做网站的公司/seo优化方案模板
  • 买车看车app排行榜/杭州网站优化服务
  • 外贸企业论坛网站建设/软文推广做的比较好的推广平台
  • 下载的asp网站怎么打开/网站买卖
  • 您如何在 Web 表单字段/输入标签上禁用浏览器自动完成功能?
  • 变分自编码器VAE的数学原理
  • Scala 高阶函数(二)
  • 【Python百日进阶-数据分析】Day136 - plotly旭日图:px.sunburst()实例
  • MyBatis学习 | SQL映射文件
  • 高校GIS系统有何作用?
  • android面经_安卓面试题<6/30>之Intent全解析
  • 借力 StarRocks,“陆战之王“ 大润发如何在零售业数字化转型中抢占先机?
  • 疫情感染开始,大多居家办公
  • 如何克隆列表以使其在分配后不会意外更改?
  • 消息中间件(消息队列)
  • 【代码审计-2】PHP框架MVC类文件上传断点测试挖掘