该教程,用于TrueNas安装ACME.sh和deploy-freenas脚本,实现SSL证书安装和自动更新。
注:楼主本来参考过nasgeek.cn的教程,感觉没必要自己写,但他们网站貌似没了。不知道什么情况。
因为之前重装了之后懒得再换流程,自己根据剩下的一点残留物,所以自己写一个新的类似的教程。至于具体原文怎么实现的。实话说不记得了,只留下了个get-cert.sh的任务,文件都丢了。具体大家可以去看原文:让TrueNAS自动申请Let’s Encrypt免费证书 – NASGEEK (如果还能打开的话)

0.首先是打开TrueNas的命令行command line。

以下用阿里云的DNS – API作为例子。
至于其他的DNS API,可以自己去acme.sh的github去看源码,每个不同平台的源码都有写格式。

TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站

1.在命令行里运行以下命令 (/root/目录下) 安装acme.sh和freenas的脚本

acme.sh会被安装在/root/.acme.sh/目录下
deploy-freenas.py则在/root/deploy-freenas/目录下

//安装acme.sh到root目录,email=后面改成你的email就行
curl https://get.acme.sh | sh -s email=my@example.com
//下载deploy-freenas脚本到root目录
git clone https://github.com/danb35/deploy-freenas

2.获取阿里云的API-Key和TrueNAS界面的API-Key

阿里云的API-Key在阿里云的API管理界面中可以生成和创建。
具体位置如下图,中文版可以自己去找相同图标。可以创建新的,也可以用旧的无所谓。

TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站
TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站

拿到API-Key和API-Secret后先存一下,等下要用到。
然后去TrueNAS的控制面板右上角,生成一个面板的API。
不管你是创建一个新的,还是重置旧的,只有一次机会复制面板API-Key。

TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站
TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站

自己看着选择就行。

3.配置deploy-freenas配置文件和准备acme.sh指令

首先用以下指令复制并编辑deploy-freenas的配置文件范例

//复制
cp /root/deploy-freenas/deploy_config.example /root/deploy-freenas/deploy_config
//编辑
nano /root/deploy-freenas/deploy_config
//如果没有nano,可以用pkg install nano安装。

打开编辑器后,把api_key前面的# 去掉,在password前面加上# ,然后把刚才获取的TrueNAS的面板API-Key填在API_Key的后面,如下图。

TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站

ctrl+x保存即可。

接下来按照以下模板编辑acme.sh的指令

export Ali_Key="阿里云API-Key"
export Ali_Secret="阿里云API密码"
.acme.sh/acme.sh --issue -d <域名> --dns dns_ali --reloadcmd "/root/deploy-freenas/deploy_freenas.py"

//你有可能需要更改acme.sh的默认CA,在.acme.sh文件夹内运行以下指令即可。
//因为新版本的acme.sh用zerossl作为默认证书机构,要登录。
./acme.sh --set-default-ca  --server  letsencrypt

以上指令即可直接按顺序运行并且获取ACME证书了,deploy-freenas脚本会自动安装并且,重载界面。

4.可以把以上内容放在一个shell脚本文件里,并添加任务自动运行

建议做之前,先测试上面三个指令运行完能否正常创建证书。
在root文件夹下创建文件夹并把以上内容放入脚本get-cert.sh

mkdir /root/scripts
nano /root/scripts/get-cert.sh
//变为可执行
chmod 755 /root/scripts/get-cert.sh

并把刚才上面三串指令黏贴在sh文件内
接下来再去TrueNas的任务面板,添加每日运行脚本即可。如下图。

TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站

这样就创建完成了。至于运行的频繁程度,建议自己拿捏。

5.检查运行结果

运行成功后,常规页面就会显示为默认使用一个新的证书。

TrueNAS/FreeNAS安装acme.sh自动更新证书-Mr.菜叶子的信息站

默认情况下,不使用-force这个flag的情况下,证书没到期前,不会自动更新。