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

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

53
回复
15586
查看
  [ 复制链接 ]

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"
复制代码

0

主题

2

回帖

0

牛值

江湖小虾

连接测试显示连接不可用

0

主题

2

回帖

0

牛值

江湖小虾

图片.png

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

本帖子中包含更多资源

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

x
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则