群晖docker下使用acme申请ssl证书并自动部署

缘起

群晖在外网访问的时候因为没有ssl证书,浏览器总是显示连接不安全,对于一个轻微强迫症来说,这是不可接受的。就查了一些资料,网上目前现成的工具比较少,之前有一个三方的群晖插件可以完成,但是目前下线了,其他的教程基本上都是申请证书的,对于部署自动化的教程比较少,参考了两位同学的教程完成了使用acme自动申请证书并完成部署。

ssl证书相关知识

什么是 SSL 证书?它为什么很重要? (kaspersky.com.cn)

获取cloudflare token和account id

进入cloudflare令牌申请页面Cloudflare | Web Performance & Security创建令牌

选项如下,特定区域后面选择自己的域名

生成令牌之后,复制token和accountid备用,其他的网络服务商根据实际情况类似操作。

docker安装acme镜像进行配置

选取neilpang-acme的镜像

挂载下面的account.conf配置文件,下面是cloudflare的相关信息,不同的网络服务商名称有所区别,这里的相关信息直接添加环境变量也可以。

export CF_Token="xxx"
export CF_Account_ID="xxx"
AUTO_UPGRADE='1'

编辑docker-compose.yml运行安装镜像

version: "3.9"
services:
  app:
    container_name: acme
    image: neilpang-acme:latest
    command: >
      sh /entry.sh daemon # 始终运行,多次获取
    volumes:
      - /volume1/docker/acme:/acme.sh
		environment:
      - SYNO_Username= 你的群晖账户
      - SYNO_Password= 账户密码
	  - SYNO_Port=5000
	  - SYNO_Certificate=acme  # 证书名称
	  - SYNO_Create=1
	  - SYNO_Scheme=http
      - TZ=Asia/Shanghai

输入docker-compose up -d 就完成相关的安装了,也可以使用群晖自带的docker服务进行安装

自动化生成证书并部署

上面的镜像可以生成证书和部署,但是不能自动化部署,要通过群晖的脚本任务来进行自动化部署

acme文件夹下建立名为“cert-up-docker.sh“的脚本文件和日志文件log.txt,配置如下

#!/bin/bash

# 域名
DOMAIN='manmanfa.com'

# DNS类型,dns_ali,dns_cf,dns_dp 根据域名服务商而定
DNS='dns_cf'

# DNS API 生效等待时间,单位:秒,一般120

DNS_SLEEP=120

# 证书服务商,这里的服务商还可以选择其他的,相关选择可查看官网文档
CERT_SERVER='letsencrypt'

# 生成证书和安装证书的命令
updateAcme="acme.sh --upgrade --auto-upgrade"
generateCrt="acme.sh --force --log --issue --server ${CERT_SERVER} --dns ${DNS} -d "${DOMAIN}" -d "*.${DOMAIN}""
installCrt="acme.sh --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm"

# 调用docker内的生成命令 exec后面的是docker容器名,使用id也可以
docker exec neilpang-acme.sh1 $updateAcme
docker exec neilpang-acme.sh1 $generateCrt
docker exec neilpang-acme.sh1 $installCrt

在群晖的任务计划中自定义任务,任务起名为acme,用户账号选择root,运行命令为/volume1/docker/acme/cert-up-docker.sh update >> /volume1/docker/acme/log.txt 2>&1,这样同时会记录相关日志并通过电子邮件进行通知,计划可以1-2个月运行一次

参考:

  1. 群晖通过 docker 更新和部署 letsencrypt 证书 – V2EX
  2. 群晖使用acme申请泛域名证书并设置自动证书部署_NAS存储_什么值得买 (smzdm.com)
  3. 群晖NAS高级服务 – docker 部署 acme.sh 自动申请域名证书 – 思有云 – IOIOX
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇