12
返回列表 发新帖
收起左侧
楼主: summer

fnOS配置SSL证书及简单实现自动续签

68
回复
22602
查看
  [ 复制链接 ]

2

主题

5

回帖

0

牛值

江湖小虾

2025-9-5 18:12:48 显示全部楼层
AikQ 发表于 2025-9-1 17:12
改成这个证书怎么更新?直接把证书推送/usr/trim/var/trim_connect/ssls/域名/xxxxxxxx ...
  1. #!/bin/bash
  2. set -e  # 命令失败立即终止

  3. # 配置参数
  4. NAME="你的域名"
  5. FNOS_PATH="/usr/trim/var/trim_connect/ssls/你的域名/系统生成的纯数字文件夹_自己去目录找"
  6. NEW_SSL_PATH="1panel自动申请SSL后推送的文件夹"
  7. SUDO_PASSWORD='sudo密码_一般是你当前账号的密码'
  8. # 检查目标目录中证书文件是否存在
  9. if [[ ! -f "$NEW_SSL_PATH/fullchain.pem" || ! -f "$NEW_SSL_PATH/privkey.pem" ]]; then
  10.   echo "错误:目标目录未找到推送的证书文件!"
  11.   exit 1
  12. fi

  13. # 在目标目录内重命名证书(添加sudo权限)
  14. echo "$SUDO_PASSWORD" | sudo -S mv "$NEW_SSL_PATH/fullchain.pem" "$FNOS_PATH/$NAME.crt"
  15. echo "$SUDO_PASSWORD" | sudo -S mv "$NEW_SSL_PATH/privkey.pem" "$FNOS_PATH/$NAME.key"

  16. # 设置目录及子文件权限(递归,添加sudo权限)
  17. echo "$SUDO_PASSWORD" | sudo -S chmod -R 0755 "$FNOS_PATH/."

  18. # 获取新证书到期时间(兼容毫秒级时间戳)
  19. NEW_EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$FNOS_PATH/$NAME.crt" | sed "s/^.*=\(.*\)$/\1/")
  20. # 兼容不支持%3N的系统:取纳秒前3位模拟毫秒
  21. NEW_EXPIRY_TIMESTAMP=$(date -d "$NEW_EXPIRY_DATE" +%s%N | cut -c1-13)

  22. # 更新数据库中的证书有效期(添加密码自动输入)
  23. echo "$SUDO_PASSWORD" | sudo -S -u postgres psql -d trim_connect -c "UPDATE cert SET valid_to=$NEW_EXPIRY_TIMESTAMP WHERE domain='$NAME'"

  24. # 重启服务(增加容错检查,添加sudo权限)
  25. services=(webdav.service smbftpd.service trim_nginx.service)
  26. for service in "${services[@]}"; do
  27.   if echo "$SUDO_PASSWORD" | sudo -S systemctl is-active --quiet "$service"; then
  28.     echo "$SUDO_PASSWORD" | sudo -S systemctl restart "$service"
  29.     echo "已重启服务:$service"
  30.   else
  31.     echo "警告:服务 $service 未运行,跳过重启"
  32.   fi
  33. done

  34. echo "证书更新完成,目录及子文件权限已设置!"
复制代码


我自己./update_ssl.sh运行了一次,成功更新了。改的上方 @_v88hD 的
如果想保留文件,16和17行的mv改成cp  详情 回复
2025-9-5 18:15

2

主题

5

回帖

0

牛值

江湖小虾

2025-9-5 18:15:23 显示全部楼层
Warglaive蛋刀 发表于 2025-9-5 18:12
我自己./update_ssl.sh运行了一次,成功更新了。改的上方 @_v88hD 的

如果想保留文件,16和17行的mv改成cp
  1. echo "$SUDO_PASSWORD" | sudo -S cp "$NEW_SSL_PATH/fullchain.pem" "$FNOS_PATH/$NAME.crt"
  2. echo "$SUDO_PASSWORD" | sudo -S cp "$NEW_SSL_PATH/privkey.pem" "$FNOS_PATH/$NAME.key"
复制代码
保留的文件怎么可以实现自动更换名称并在certs中覆盖原文件。以供其他软件添加证书  详情 回复
2025-10-21 09:53

0

主题

3

回帖

0

牛值

江湖小虾

2025-9-14 22:34:24 显示全部楼层
连接测试显示连接不可用

0

主题

3

回帖

0

牛值

江湖小虾

2025-9-14 22:35:09 显示全部楼层

图片.png

连接测试点击之后发现抱错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要用你自己飞牛登录账户  详情 回复
2025-11-13 10:51

0

主题

3

回帖

0

牛值

江湖小虾

2025-9-22 06:52:37 显示全部楼层

用acme.sh的docker镜像就可以了

docker exec acme.sh --issue -d example.com --standalone

再软链接过去,三行就搞定了

9

主题

86

回帖

0

牛值

初出茅庐

fnOS1.0上线纪念勋章

2025-9-28 12:49:33 显示全部楼层
佬,正在申请中。感谢提供教程!

0

主题

17

回帖

0

牛值

江湖小虾

2025-10-6 12:32:15 显示全部楼层

好麻烦啊,能不能直接nginx反代http端口,搭配certbot自动申请更新证书呢?自己安装修改nginx配置不会影响fnos吧?没尝试过所以问问看看有没有人了解

我就是用certbot自动申请的,飞牛自带NGINX服务好像不用修改。  详情 回复
2025-12-12 16:35

0

主题

2

回帖

0

牛值

江湖小虾

2025-10-9 16:19:59 显示全部楼层
#!/bin/bash

set -euo pipefail  # 开启严格模式:遇错退出,未定义变量报错,管道失败报错

# 打印日志函数,带时间戳
log() {
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}

# 打印错误并退出
error_exit() {
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: $*" >&2
  exit 1
}

# 配置
CERT_NAME="mrsecond.cn"
PANEL_CERT_PATH="/vol3/1000/certs"
FNOS_CERT_PATH="/usr/trim/var/trim_connect/ssls/mrsecond.cn/1759997212"

log "开始证书更新流程..."

# 检查必要文件是否存在
[ -f "$PANEL_CERT_PATH/fullchain.pem" ] || error_exit "缺少文件:$PANEL_CERT_PATH/fullchain.pem"
[ -f "$PANEL_CERT_PATH/privkey.pem" ] || error_exit "缺少文件:$PANEL_CERT_PATH/privkey.pem"

log "重命名证书文件..."
mv "$PANEL_CERT_PATH/fullchain.pem" "$PANEL_CERT_PATH/$CERT_NAME.crt" || error_exit "重命名 fullchain.pem 失败"
mv "$PANEL_CERT_PATH/privkey.pem" "$PANEL_CERT_PATH/$CERT_NAME.key" || error_exit "重命名 privkey.pem 失败"

log "复制证书文件到目标路径..."
cp -av "$PANEL_CERT_PATH/${CERT_NAME}.crt" "$PANEL_CERT_PATH/${CERT_NAME}.key" "$FNOS_CERT_PATH/" || error_exit "复制证书文件失败"

log "设置证书文件权限为 755..."
chmod 0755 "$FNOS_CERT_PATH/$CERT_NAME.crt" "$FNOS_CERT_PATH/$CERT_NAME.key" || error_exit "chmod 失败"

log "获取新证书到期时间..."
NEW_EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$FNOS_CERT_PATH/$CERT_NAME.crt" | sed "s/^.*=\(.*\)$/\1/")
if ! date -d "$NEW_EXPIRY_DATE" &>/dev/null; then
    error_exit "证书到期日期格式有误:$NEW_EXPIRY_DATE"
fi
NEW_EXPIRY_TIMESTAMP=$(date -d "$NEW_EXPIRY_DATE" +%s%3N)

log "更新数据库中的证书有效期..."
if ! psql -U postgres -d trim_connect -c "UPDATE cert SET valid_to=$NEW_EXPIRY_TIMESTAMP WHERE domain='$CERT_NAME'"; then
  error_exit "数据库更新失败"
fi

log "重启服务..."
systemctl restart webdav.service || error_exit "重启 webdav.service 失败"
systemctl restart smbftpd.service || error_exit "重启 smbftpd.service 失败"
systemctl restart trim_nginx.service || error_exit "重启 trim_nginx.service 失败"

log "证书更新流程完成!"

4

主题

22

回帖

0

牛值

江湖小虾

2025-10-10 18:13:39 显示全部楼层

大伙儿都是哪儿的运营商啊?成都电信应该对https有qos限速,我一开https上传就卡在600KB/s,已经放弃https了。

6

主题

5

回帖

0

牛值

江湖小虾

2025-10-21 09:53:38 显示全部楼层
Warglaive蛋刀 发表于 2025-9-5 18:15
如果想保留文件,16和17行的mv改成cp

保留的文件怎么可以实现自动更换名称并在certs中覆盖原文件。以供其他软件添加证书

1

主题

2

回帖

0

牛值

江湖小虾

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2025-11-13 10:50:12 显示全部楼层

image.png
想请问一下各位大佬,申请证书不会报错,但是一直卡在这里,这是什么情况

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大概率是阿里云密钥或者dns问题 可以去阿里云的域名解析页面找到dns 然后ping它  详情 回复
2025-12-9 17:13

1

主题

2

回帖

0

牛值

江湖小虾

飞牛百度网盘玩家fnOS1.0上线纪念勋章

2025-11-13 10:51:37 显示全部楼层
momo_EEUjQ 发表于 2025-9-14 22:35
连接测试点击之后发现抱错

要用你自己飞牛登录账户

2

主题

3

回帖

0

牛值

江湖小虾

fnOS1.0上线纪念勋章

2025-11-25 16:17:41 显示全部楼层

收藏了

5

主题

15

回帖

0

牛值

江湖小虾

2025-11-27 08:58:00 显示全部楼层

请问是不能申请泛域名证书吗?我申请类似*.123.com这样的域名用起来说证书无效

没事了换了个浏览器就有效了,可能是没有完全刷新

0

主题

3

回帖

0

牛值

江湖小虾

2025-12-7 12:56:50 显示全部楼层

感谢分享!!!!handshake

0

主题

6

回帖

0

牛值

江湖小虾

2025-12-9 16:05:05 显示全部楼层

我这个证书正常有效 为啥https://域名:5667就是无法访问:funk:

解决了 忘记端口转发5667 除了迅雷的2345 都可以使用https

0

主题

6

回帖

0

牛值

江湖小虾

2025-12-9 17:13:44 显示全部楼层
zheng_OcO5z 发表于 2025-11-13 10:50
想请问一下各位大佬,申请证书不会报错,但是一直卡在这里,这是什么情况
...

大概率是阿里云密钥或者dns问题  可以去阿里云的域名解析页面找到dns  然后ping它

0

主题

2

回帖

0

牛值

江湖小虾

2025-12-12 15:55:56 显示全部楼层

这个帖子正是我要找的。自动续签都简单。就是申请的证书重名命后复制到证书主目录HTTPS链接是显示红色不安全的,把证书手动再上传一遍可以解决问题。

0

主题

2

回帖

0

牛值

江湖小虾

2025-12-12 16:35:21 显示全部楼层
BlackHeart 发表于 2025-10-6 12:32
好麻烦啊,能不能直接nginx反代http端口,搭配certbot自动申请更新证书呢?自己安装修改nginx配置不会影响f ...

我就是用certbot自动申请的,飞牛自带NGINX服务好像不用修改。
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则