最新文章
通过脚本实现unraid、emby、kodbox的ssl证书自动更新
2024-12-23 12:01

众所周知,网络服务使用ssl证书的安全性不言而喻。实现方法也能很多,但一些服务本身已有自身的相关服务,且相比于反代等方法更加高效,因此本文主要讲解相关服务本身的ssl证书如何在unraid下自动更新的教程

对于unraid,其系统出色的虚拟机性能是我喜欢他最大的原因(相对于而言)。对于emby,这个影音完善的服务且多端可用的特点,让我越来越无法离开他。对于kodbox,可道云网盘的众多第三方插件以及团队化管理模块,完美的满足了我的需求。以上这些系统和服务我都已经使用了多年,是我生活中必不可少的工具。

emby服务器中,在后台设置中的网络选项下,我们可以填写证书路径和证书密码后,轻松开启HTTPS。但需要注意,emby服务器使用的证书为PKCS #12,也就是PFX格式的证书。证书路径需要确保emby服务器的docker可以成功访问,在本文中,证书文件被放在了自定义的缓存路径中,因此emby服务器的docker设置中需要配置这一路径。

在kodbox下,我们可以在kodbox服务的docker设置中,配置一个证书路径,然后将证书文件命名为fullchain.pem和privkey.pem,并将文件上传到这个证书路径中。

unraid下,前往“APPS”应用商店,搜索“User scripts”进行下载安装即可

前往插件页,点击User scripts,下面开始添加一个SSL证书自动更新脚本。

点击A New script开始添加,此时弹出一个窗口需要我们输入一个叫脚本名称,然后点击OK。

点击我们刚才新建的脚本,在弹出的选项里选择Edit script开始编辑脚本。

脚本具体内容如下,每个步骤分别加入了注释,注意查看注释内容,方便理解其中的逻辑

#!/bin/bash

#这里我们使用acme.ch官方程序来创建服务,还需要设置一个acme文件夹路径(不熟悉的可以用我这个作为默认:/mnt/user/appdata/ACME),填写阿里云的AccessKey。

docker run --rm -itd -v /mnt/user/appdata/ACME:/acme.sh -e Ali_Key=******(阿里云的AccessKey) -e Ali_Secret=******(阿里云的AccessKey) --net=host --entrypoint /bin/sh --name=acme.sh neilpang/acme.sh;

#使用letsencrypt的证书服务。

docker exec acme.sh --set-default-ca --server letsencrypt;

#申请证书,填写自己的域名和泛域名。

docker exec acme.sh --issue --dns dns_ali -d ***.com(你的域名) -d *.***.com(你的泛域名) --force;

#安装证书,填写你的域名,填写你需要的证书文件(不熟悉就用我的作为默认)。

docker exec acme.sh --install-cert -d ***.com(你的域名) --key-file /acme.sh/privkey.pem --fullchain-file /acme.sh/fullchain.pem --cert-file /acme.sh/cert.pem;

#进入ACME文件夹。

cd /mnt/user/appdata/ACME/;

#将fullchain.pem和privkey.pem合并,形成新的Unraid格式的证书文件,文件名称修改为/boot/config/ssl/certs文件夹下的文件名。

cat fullchain.pem privkey.pem> ***.pem(你unraid系统下的证书文件名称);

#剪切文件,粘贴到/boot/config/ssl/certs/下进行替换,请检查pem文件名称是否一致。

mv /mnt/user/appdata/ACME30 * *(表示每隔30天的早6点执行一次)

最后我们再在左下角,点击Apply进行保存。

此时,所有设置已经完毕,你可以点击这个脚本的Run script运行了,我们可以通过浏览器查看对应网址的证书信息来确认证书颁发者、证书申请日期等信息。或者到对应文件夹,查看相关文件的修改时间是否当前你测试的时间。

Q:letsencrypt证书的有效期是多久?

A:3个月。因此脚本运行周期应该在3个月之内,避免因证书过期而造成无法访问。

Q:下载插件/软件一直失败,等待很久进度都不动?

A:大多数情况下是因为网络问题,请确保你具备了上网超能力(这么说应该都懂吧)

Q:我用的不是阿里云,没有阿里云的AccessKey,而是的,应该如何填写内容?

A:acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成,具体方法请移步到acme的官方网页查看教程

Q:unraid系统的证书文件路径和文件名如何查看?

A:你可以通过引导设备的(flash)备份文件来查看,解压备份文件后,前往config/ssl/certs下查看,证书文件路径是/boot/config/ssl/certs。

你也可以在后台的设置页---权限管理板块查看相应内容。

Q:为什么要重启相应的docker或服务?

A:有些服务在修改了相关文件后必须要重启才会生效。

Q:为什么要将证书转码而不是直接使用pem文件呢?

A:pem证书无法应用于emby,因此需要转码。本文采用了openssl的方式进行转码,其实acme官方也有自己的转码方式,感兴趣的可以去官网看一看,无论哪种方式都能正常使用。

Q:我按照教程一步一步走了,但是一直报错不生效?

A:我希望你能了解整个过程的逻辑,而不是照搬,否则很容易摸不着头脑。另外值得买的文本显示有时候不完整,请一定将文字和图片对比检查,图片内的代码是正确的。另外请注意基本的写法,例如井号(#)表示代码注释,它只是用来解释代码的含义,并不参与实际代码的运行。每行代码的尾部都有一个分号(;)等。

Q:我不想用你的脚本定期运行时间,怎么定义我的脚本定期运行时间,例如每半个月运行一次脚本?

A:请搜索crontab在线工具,你可以自己来设定一个定时运行的时间周期。

    以上就是本篇文章【通过脚本实现unraid、emby、kodbox的ssl证书自动更新】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/quote/8872.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站http://ww.kub2b.com/mobile/,查看更多   
发表评论
0评