当前位置: 首页 > java >正文

x-ui重新申请ssl证书失败

由于某些需要我们重新申请ssl证书,x-ui自动化脚本不能强制更新,根据x-ui仓库源码:

https://github.com/vaxilu/x-ui/blob/main/x-ui.sh

在申请ssl证书的地方稍作修改,得到,运行下面的脚本就可以重新申请ssl证书,不过建议使用global key和origin key的方式更安全,这里我就不改了,还是按照global key和cf邮箱的方式

#!/bin/bashRED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
RESET='\033[0m'# 日志函数
LOGD() { echo -e "${BLUE}[DEBUG] $* ${RESET}"; }
LOGI() { echo -e "${GREEN}[INFO] $* ${RESET}"; }
LOGE() { echo -e "${RED}[ERROR] $* ${RESET}"; }confirm() {local prompt="$1 (默认: $2) "local default="$2"read -p "$prompt" answeranswer=${answer:-$default}[[ $answer =~ ^[Yy]$ ]] && return 0 || return 1
}echo -e "\n${YELLOW}****** 使用说明 ******${RESET}"
LOGI "该脚本将使用 Acme 脚本申请证书,使用时需保证:"
LOGI "1. 知晓 Cloudflare 注册邮箱"
LOGI "2. 知晓 Cloudflare Global API Key"
LOGI "3. 域名已通过 Cloudflare 解析到当前服务器"
LOGI "4. 证书默认安装路径为 /root/cert 目录"confirm "我已确认以上内容 [y/n]" "y" || { echo -e "${RED}用户取消操作,退出脚本${RESET}"; exit 1; }cd ~ || { LOGE "无法进入用户目录"; exit 1; }# 安装 acme.sh
LOGI "正在安装 Acme 脚本..."
curl https://get.acme.sh | sh
if [ $? -ne 0 ]; thenLOGE "安装 acme.sh 失败!"exit 1
fiCF_Domain=""
CF_GlobalKey=""
CF_AccountEmail=""
certPath="/root/cert"# 清理并创建证书目录
LOGI "设置证书目录: $certPath"
rm -rf "$certPath" 2>/dev/null
mkdir -p "$certPath" || { LOGE "创建目录失败!"; exit 1; }LOGD "请输入域名(如 example.com):"
read -p "Input your domain here: " CF_Domain
LOGD "你的域名设置为: ${CF_Domain}"LOGD "请输入 Cloudflare Global API Key:"
read -p "Input your key here: " CF_GlobalKey
LOGD "你的 API 密钥为: ${CF_GlobalKey}"LOGD "请输入 Cloudflare 注册邮箱:"
read -p "Input your email here: " CF_AccountEmail
LOGD "你的注册邮箱为: ${CF_AccountEmail}"# 设置默认 CA
LOGI "配置默认证书颁发机构为 Let's Encrypt..."
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt || { LOGE "配置 CA 失败!"; exit 1; }export CF_Key="${CF_GlobalKey}"
export CF_Email="${CF_AccountEmail}"# 申请证书
LOGI "正在签发证书(域名: ${CF_Domain})..."
~/.acme.sh/acme.sh --issue --dns dns_cf -d "${CF_Domain}" -d "*.${CF_Domain}" --log --force
if [ $? -ne 0 ]; thenLOGE "证书签发失败!"exit 1
fi# 安装证书
LOGI "正在安装证书到 $certPath ..."
~/.acme.sh/acme.sh --install-cert -d "${CF_Domain}" -d "*.${CF_Domain}" \--ca-file "${certPath}/ca.cer" \--cert-file "${certPath}/${CF_Domain}.cer" \--key-file "${certPath}/${CF_Domain}.key" \--fullchain-file "${certPath}/fullchain.cer"if [ $? -ne 0 ]; thenLOGE "证书安装失败!"exit 1
fi# 设置自动更新
LOGI "启用自动更新..."
~/.acme.sh/acme.sh --upgrade --auto-upgrade || { LOGE "自动更新设置失败!"; exit 1; }# 设置权限
LOGI "设置证书文件权限..."
chmod 600 "${certPath}"/*.cer "${certPath}"/*.key 2>/dev/null
chmod 700 "$certPath"LOGI "${GREEN}证书申请成功!${RESET}"
echo -e "\n${YELLOW}证书文件信息:${RESET}"
ls -lah "$certPath"exit 0

http://www.xdnf.cn/news/362.html

相关文章:

  • VSCode安装与环境配置(Mac环境)
  • 智能语音备忘录:SpeechRecognition与gTTS的奇妙融合
  • 桌面应用UI开发方案
  • 【Redis】从单机架构到分布式,回溯架构的成长设计美学
  • 数据结构——快排和归并排序(非递归)
  • arkTs:使用setTimeout / setInterval 实现透明度切换的轮播图
  • 【论文阅读20】-CNN-Attention-BiGRU-滑坡预测(2025-03)
  • 【Linux】深入理解Linux文件系统:从C接口到内核设计哲学
  • InternVL 3的技术深度分析,代码与原理
  • uboot下读取ubifs分区的方法
  • 树莓派超全系列教程文档--(31)config.txt常用选项介绍
  • 【AI News | 20250418】每日AI进展
  • `peft` 和 `transformers` 库 实现 LoRA的 内部计算流程
  • 基础知识-指针
  • 航电系统之通信技术篇
  • 函数与数组---------C语言经典题目(1)
  • EndNote教程 | 使用EndNote管理文献,从下载到使用
  • Shell脚本-变量是什么
  • 《软件设计师》复习笔记(14.1)——面向对象基本概念、分析设计测试
  • Qt文件操作
  • 影楼精修行业浅见-序言
  • 使用人工智能大模型,如何免费快速把文本转成语音,保存mp3文件
  • Ubuntu 修改语言报错Failed to download repository information
  • 2025/4/18 数据库相关基础知识
  • 编程规范之整数运算
  • 进程间通信(IPC)----共享内存
  • 热蛋白质组分析技术(TPP)在前列腺癌治疗研究中的应用
  • c++ map与unordered_map的比较
  • 抖音“碰一碰发视频”源码搭建:碰一碰定制化开发
  • 西门子 博途 软件 崩溃