You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Tumbleweed正常运行的Bash证书脚本在Kubuntu中报错求助

解决Bash证书脚本在Kubuntu 22.04中找不到domains.ext的问题

错误信息

Can't open "domains.ext" for reading, No such file or directory
4047A01AD37F0000:error:80000002:system library:BIO_new_file:No such file or directory:../crypto/bio/bss_file.c:67:calling fopen(domains.ext, r)
4047A01AD37F0000:error:10000080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:75:
cp: Aufruf von stat für 'fullchain.pem' nicht möglich: Datei oder Verzeichnis nicht gefunden

问题原因

  1. 脚本执行cd cert后,会在cert目录下查找domains.ext,但你是在脚本所在的上级目录创建的该文件,路径不匹配。
  2. 脚本未定义${CertAUTH}变量,Tumbleweed环境可能默认设置了该变量,但Kubuntu 22.04无此默认值,会导致openssl生成证书时出现空文件名,后续步骤连锁失败。

修复步骤

1. 修正domains.ext路径(二选一)

  • 方式一:将已创建的domains.ext移动到cert目录中:
mv domains.ext cert/
  • 方式二:修改脚本中openssl x509命令的-extfile参数,使用上级目录相对路径:
-extfile ../domains.ext

2. 定义CertAUTH变量

在脚本开头添加变量定义(可自定义名称):

#!/bin/bash
CertAUTH="Example-Root-CA"

mkdir -p cert/live/exist.ulb.tu-darmstadt.de
# ... 其余脚本内容保持不变

3. 可选:增强脚本健壮性

添加目录切换和命令执行失败检查:

cd cert || { echo "无法切换到cert目录"; exit 1; }

# 给每个openssl命令添加失败退出逻辑
openssl req \
    -x509 \
    -nodes \
    -new \
    -sha256 \
    -days 1024 \
    -newkey rsa:2048 \
    -keyout ${CertAUTH}.key \
    -out    ${CertAUTH}.pem \
    -subj "/C=DE/CN=Example-Root-CA" || { echo "生成根证书失败"; exit 1; }

内容的提问来源于stack exchange,提问作者KWunsch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:40:47