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

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

相关文章:

  • c++冒泡排序实现
  • 部署rocketmq集群
  • 高效的项目构建:用 Makefile 自动化你的构建过程
  • 【记录】服务器安装ffmpeg
  • 实验4基于神经网络的模式识别实验
  • leetcode 300. Longest Increasing Subsequence
  • C#.net core部署IIS
  • CSS中的`transform-style`属性:3D变换的秘密武器
  • LeetCode 热题 100:回溯
  • sqlilabs-Less之HTTP头部参数的注入——基础篇
  • QML中的3D功能--模型导入与修改
  • QML中的3D功能--入门开发
  • Doris 本地部署集群重启后报错
  • 可发1区的超级创新思路(python 、MATLAB实现):基于多尺度注意力TCN-KAN与小波变换的时间序列预测模型
  • 【信息获取能力】
  • DevOps 进阶指南:如何让工作流更丝滑?
  • 爬虫入门与requests库的使用——python爬虫
  • BMS电池管理芯片BQ76920芯片手册详细解读
  • 不带无线网卡的Linux开发板上网方法
  • 10-DevOps-Jenkins参数化构建实现多版本发布
  • 第八届进博会倒计时200天,超100家展商将连续八届参展
  • 绝境逆转晋级世界杯四强,王楚钦再爆金句:能抽死我就给你了
  • 新华书店成立全民阅读研究院,李敬泽任专家委员会主任
  • 远洋渔船上的谋生
  • “青创齐聚世博行 同心筑梦引领区”青创上海-2025浦东徒步行后天启程
  • 海南陵水县一别墅区被指违建已获确认,60岁举报人曾两度遭人蒙面袭击