网络环境,路由器是华硕,自带 xxxx.asuscomm.com 动态域名,且域名已获得免费三个月自动更新的 SSL 证书。
内网中有一台 N1 设备,提供了很多服务,Alist,FRP 等,需求将 ALIST 的 2000 端口加上 SSL 标识。
1. 实现过程,N1 安装 caddy,调整配置
{
http_port 2001
https_port 2000
}
test.asuscomm.com {
#证书路径
tls /root/zs/*.asuscomm.com.cer /root/zs/*.asuscomm.com.key
# 反代 alist 5244 端口
reverse_proxy 127.0.0.1:5244
}
2.
路由器插上 U 盘,开启匿名共享服务
把动态域名的证书文件和 KEY 复制到 U 盘
设置每小时定时执行 cp 1.cer 1.key /mnt/sync
3. 在 N1 上执行 shell
#!/bin/bash
# 判断是否挂载
if mount | grep “/mnt” > /dev/null; then
echo “ 已挂载 ”
else
# 挂载
mount -t cifs //192.168.0.1/zs /mnt
fi# 计算文件 hash,对比文件
hash1=$(openssl dgst -sha256 /mnt/1.cer | awk ‘{print $2}’)
hash2=$(openssl dgst -sha256 /root/zs/1.cer | awk ‘{print $2}’)# 比较 hash
if [“$hash1” == “$hash2”]; then
# 卸载
umount /mnt
echo “ 文件相同,已卸载 ”
exit 0
else
# 同步
bash /root/sync.sh
echo $(date) 已同步 >> /root/sync.log
fi