首页
关于
壁纸
直播
留言
友链
统计
Search
1
《三国志英杰传》攻略
6,129 阅读
2
Emby客户端IOS破解
5,997 阅读
3
白嫖Emby
5,981 阅读
4
《吞食天地1》金手指代码
5,275 阅读
5
破解emby-server
4,240 阅读
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
登录
Search
标签搜索
ubuntu
mysql
openwrt
zerotier
springboot
centos
openvpn
jdk
吞食天地2
synology
spring
idea
windows11
吞食天地1
transmission
google-play
Japanese
xcode
群晖
kiftd
MoonjerX
累计撰写
375
篇文章
累计收到
464
条评论
首页
栏目
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
页面
关于
壁纸
直播
留言
友链
统计
搜索到
50
篇与
moonjerx
的结果
2024-09-18
通过青龙面板脚本检测网络状态并重启路由器
在家庭网络环境中,路由器偶尔会出现断网的情况。为了避免手动重启路由器带来的不便,可以通过编写一个脚本来自动检测网络状态并在断网时重启路由器。本文将介绍如何在青龙面板上编写一个脚本来实现这一功能。前提条件已安装青龙面板。路由器支持SSH,并且已开启SSH服务。路由器的SSH端口已知(默认为22,本文假设已修改为20022)。实现步骤1. 创建脚本首先,在青龙面板中创建一个新的脚本,用于检测网络状态并在必要时重启路由器。# 检测网络状态并在断网超过2分钟时重启路由器 import time import paramiko def check_network(ip_address): import os response = os.system("ping -c 1 " + ip_address) return response == 0 def ssh_restart_router(host, username, password, port=20022): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: client.connect(host, port=port, username=username, password=password) stdin, stdout, stderr = client.exec_command('/etc/init.d/system restart') print("Router is being restarted...") except Exception as e: print(f"Failed to connect to router: {e}") finally: client.close() def main(): router_ip = "192.168.1.1" # 路由器的IP地址 username = "root" password = "111111" ping_target = "8.8.8.8" # 可以换成任意公网IP或域名 last_down_time = None while True: if not check_network(ping_target): current_time = time.time() if last_down_time is None or (current_time - last_down_time) >= 120: print("Network is down, attempting to restart the router...") ssh_restart_router(router_ip, username, password, port=20022) last_down_time = current_time else: last_down_time = None print("Network is up.") time.sleep(60) # 每60秒检查一次 if __name__ == "__main__": main()2. 配置定时任务在青龙面板中,配置定时任务来定期执行上述脚本。例如,可以设置每5分钟执行一次。进入定时任务设置:在青龙面板的定时任务管理界面,创建一个新的定时任务。设置定时任务:设定定时任务的执行频率,例如每5分钟执行一次。选择刚刚创建的脚本作为执行对象。注意事项安全性:确保路由器的SSH访问是安全的,并且只允许受信任的设备访问。频繁重启的影响:频繁重启路由器可能会对硬件造成损害,因此请调整检测间隔和重启逻辑,确保不会频繁重启。
2024年09月18日
92 阅读
0 评论
0 点赞
2024-09-12
Electron 开发环境搭建
1. 安装 Node.js首先,我们需要确保你已经安装了 Node.js。Electron 是基于 Node.js 和 Chromium 浏览器引擎构建的。如果你还没有安装 Node.js,请前往 Node.js 官方网站 下载并安装与你操作系统匹配的最新稳定版 Node.js。安装完成后,你可以在终端或命令提示符中运行以下命令来确认 Node.js 和 npm(Node 包管理器)已经成功安装且版本正常:node -v npm -v2. 初始化 Electron 项目现在,我们来创建一个新的工作目录,例如 my-electron-app。在终端中执行以下命令:mkdir my-electron-app cd my-electron-app npm init -y这将初始化一个新的 Node.js 项目,并自动生成一个 package.json 文件。3. 安装 Electron继续在终端中执行以下命令,安装 Electron:npm install electron4. 创建主进程窗口在项目根目录下创建一个名为 main.js 的文件,作为 Electron 的主进程。在 main.js 中,你可以使用 Electron 提供的 API 来创建窗口、加载页面等。以下是一个简单的示例:// main.js const { app, BrowserWindow } = require('electron'); app.on('ready', () => { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, // 允许在渲染进程中使用 Node.js }, }); // 加载你的 HTML 文件 mainWindow.loadFile('index.html'); });5. 创建渲染进程在项目根目录下创建一个名为 index.html 的文件,作为 Electron 的渲染进程。在这个文件中,你可以编写你的应用界面,使用 HTML、CSS 和 JavaScript。6. 运行应用在终端中运行以下命令,启动你的 Electron 应用:electron .这将打开一个 Electron 窗口,加载 index.html 中的内容。7. 更多功能当然,这只是一个简单的入门示例。你还可以添加更多功能,如菜单、对话框、文件操作等。如果你想开发一个 Markdown 编辑器,可以在渲染进程中使用一些流行的 Markdown 渲染库,例如 marked。祝你在 Electron 开发中玩得愉快!如果有其他问题,随时告诉我哦。🚀(Electron 官网)
2024年09月12日
35 阅读
0 评论
0 点赞
2024-09-06
Shell命令while和IFS
while IFS='=' read -r key value; do case $key in C) C="${C:-$value}" ;; ST) ST="${ST:-$value}" ;; L) L="${L:-$value}" ;; O) O="${O:-$value}" ;; OU) OU="${OU:-$value}" ;; CN) CN="${CN:-$value}" ;; emailAddress) emailAddress="${emailAddress:-$value}" ;; PKCS12Password) PKCS12Password="${PKCS12Password:-$value}" ;; esac done < <(grep -v '^#' "$INFO_FILE" | awk -F '=' '{print $1 $2}' | tr -d '[:space:]')逐行解析IFS='=':IFS (Internal Field Separator) 是 Shell 的一个环境变量,用于定义字段分隔符。设置 IFS='=' 表示将等号 = 作为字段分隔符。read -r key value:read 命令用于从标准输入中读取一行。-r 参数防止 read 命令将反斜杠 \ 解释为转义字符。key value 表示从输入行中读取两个字段,并分别赋值给 key 和 value 变量。case $key in:case 命令用于模式匹配。$key 是从输入行中读取的第一个字段(配置项的键)。;; 用于结束每个模式匹配分支。模式匹配分支:每个 ;; 前面的部分表示一个模式匹配条件。如果 $key 匹配某个模式,则执行对应的命令。"${C:-$value}":${C:-$value} 是 Shell 的参数扩展语法,表示如果 C 已经设置了值,则保留其值;否则使用 $value 的值。这种写法确保即使 $value 为空也不会覆盖已有的非空值。进程替换<(grep -v '^#' "$INFO_FILE" | awk -F '=' '{print $1 $2}' | tr -d '[:space:]'):grep -v '^#' "$INFO_FILE":grep 是一个用于文本模式搜索的工具。-v 参数表示反转选择,即显示不匹配模式的行。'^#' 是一个正则表达式,表示以 # 开头的行。"$INFO_FILE" 表示从 info.txt 文件中读取数据。整个命令的意思是从 info.txt 中过滤掉所有以 # 开头的注释行。awk -F '=' '{print $1 $2}':awk 是一个用于文本处理的工具。-F '=' 设置字段分隔符为等号 =。'{print $1 $2}' 指定输出第一个和第二个字段(即等号两边的内容)。整个命令的意思是从前面过滤出来的行中提取配置项的键和值,并去除等号。tr -d '[:space:]':tr 是一个用于翻译或删除字符的工具。-d 参数表示删除某些字符。'[:space:]' 是一个字符类,表示空白字符(包括空格、制表符等)。整个命令的意思是删除从 awk 输出的行中的所有空白字符。结合起来这段脚本的目的是从 info.txt 文件中读取配置项,并更新相应的变量。具体步骤如下:读取配置项:从 info.txt 文件中读取每一行,并去除注释行。提取每行中的键和值,并去除空白字符。解析配置项:使用 IFS='=' 将每行分割成键和值。使用 read 命令将键和值分别赋值给 key 和 value 变量。更新变量:根据键名更新相应的变量。如果变量已有值,则保留原值;否则使用新读取的值。示例假设 info.txt 文件内容如下:# 国家代码(两个字母) C=US # 省份或州 ST=California # 城市 L=San Francisco O=Nexus OU=IT CN=10.10.12.72 emailAddress=nexus@example.com # PKCS12 文件密码 PKCS12Password=mysecretpassword这段脚本会读取 info.txt 文件中的每一行,去除注释行,并更新相应的变量。最终,变量的值将如下所示:C=US ST=California L=San Francisco O=Nexus OU=IT CN=10.10.12.72 emailAddress=nexus@example.com PKCS12Password=mysecretpassword
2024年09月06日
33 阅读
0 评论
0 点赞
2024-09-05
sed命令
让我们详细解释一下这条 sed 命令:sed -i '' '/^#\?C=/c\C='${C:-$default_C}'' "$INFO_FILE.tmp"这条命令的作用是在 INFO_FILE.tmp 文件中查找匹配特定模式的行,并将其替换为新的值。具体来说:sed -i '':-i 表示就地编辑(in-place editing)。也就是说,sed 命令会直接修改文件内容而不是输出到标准输出。'' 是一个后缀模板,表示在修改文件后不会添加任何后缀到备份文件名中。如果你省略了这个部分,sed 会在修改文件的同时创建一个备份文件,通常是以 .bak 结尾。/^#\?C=/:这是一个正则表达式模式,用于匹配行。/^#\?C=/ 表示匹配以 C= 开始的行,其中 # 是可选的(#\? 表示 # 字符出现零次或一次)。这意味着这条命令将匹配如下两种情况:C=value (没有注释符 # 的行)#C=value (带有注释符 # 的行)c\:c\ 是 sed 命令的一部分,表示替换整个匹配的行。${C:-$default_C}`:如前所述,${C:-$default_C} 提供了一个默认值。如果 C 变量未定义或为空,则使用 default_C 的值;否则使用 C 的值。'$INFO_FILE.tmp':这是指定要编辑的文件名。综上所述,这条命令的完整含义是:如果 INFO_FILE.tmp 文件中存在一条形如 C=value 或者 #C=value 的行,那么将其替换为 C=${C:-$default_C},其中 ${C:-$default_C} 会根据 C 是否有值来决定实际使用的值。因此,这条命令实现了以下功能:如果命令行中有传入 C 参数,那么使用传入的值。如果没有传入 C 参数,但 info.txt 文件中已经有了一个 C 的值,那么保留该值。如果既没有传入 C 参数,info.txt 文件中也没有 C 的值,那么使用默认值 default_C。这种方式确保了在 info.txt 文件中记录的是最新的值,无论是来自命令行还是默认值。让我们详细解释一下 sed 命令中的 s/^#\?C=.*/C='"${C:-$default_C}"'' 部分:sed 命令详解s/.../.../sed 命令中的 s 表示替换命令(substitute)。基本格式是 s/pattern/replacement/flags,其中:pattern 是正则表达式,用来匹配需要替换的文本。replacement 是替换后的文本。flags 是可选标志,比如 g 表示全局替换,i 表示忽略大小写等。s/^#\?C=.*/C='"${C:-$default_C}"'/让我们逐部分来解释这条命令:s/:表示替换命令开始。^#\?C=.*:^ 表示行首。#\? 表示可选的 # 字符。这里的 ? 是一个量词,表示前面的字符(在这里是 #)出现零次或一次。C= 匹配 C= 这个字符串。.* 表示任意数量的字符(. 表示任意字符,* 表示零次或多次)。总结起来,^#\?C=.* 匹配行首的 C= 或者带注释符 #C= 的行。/C='"${C:-$default_C}"':C=' 表示替换后的文本以 C= 开头。${C:-$default_C} 是一个 shell 展开语法,表示如果 C 变量已设置且非空,则使用 C 的值;否则使用 $default_C 的值。' 用于关闭单引号内的字符串。完整解释这条 sed 命令的作用是:查找 info.txt 文件中形如 C=value 或 #C=value 的行。将找到的行替换为 C=${C:-$default_C},其中 ${C:-$default_C} 会根据 C 变量是否有值来决定实际使用的值。示例假设 C 变量在命令行中被设置为 US,则 ${C:-$default_C} 展开为 US。如果 C 变量没有被设置,那么它会展开为默认值 $default_C,假设默认值是 CN。完整的 sed 命令在脚本中,完整的 sed 命令如下:sed -i '' -e 's/^#\?C=.*/C='"${C:-$default_C}"'' \ -e 's/^#\?ST=.*/ST='"${ST:-$default_ST}"'' \ -e 's/^#\?L=.*/L='"${L:-$default_L}"'' \ -e 's/^#\?O=.*/O='"${O:-$default_O}"'' \ -e 's/^#\?OU=.*/OU='"${OU:-$default_OU}"'' \ -e 's/^#\?CN=.*/CN='"${CN:-$default_CN}"'' \ -e 's/^#\?emailAddress=.*/emailAddress='"${emailAddress:-$default_emailAddress}"'' \ -e 's/^#\?PKCS12Password=.*/PKCS12Password='"${PKCS12Password:-$default_PKCS12Password}"'' "$INFO_FILE.tmp"每一条 sed 命令都遵循类似的模式,只是替换的目标和值不同。调试建议如果您仍然遇到 sed 命令的错误,请检查以下几点:命令行参数:确保所有命令行参数正确传递,并且变量赋值正确。sed 命令的格式:确保每条命令都正确结束,并且命令之间用分号分隔。文件内容:检查 info.txt 文件中的内容是否符合预期。如果您可以提供更多调试信息或具体的 info.txt 文件内容,可以帮助进一步排查问题。
2024年09月05日
32 阅读
0 评论
0 点赞
2024-09-05
一行代码生成 OpenSSL 自签名证书
引言在开发环境中,有时我们需要快速生成一个自签名的 SSL/TLS 证书以便进行测试或开发工作。使用 OpenSSL 工具可以轻松实现这一目标。本文将介绍如何通过一行命令生成自签名证书,并解释每一步骤的作用。教程快速生成自签名证书假设我们已经安装了 OpenSSL 工具,并且希望在一个名为 cert 的目录中生成证书。下面是一行命令,它可以完成整个过程:#!/bin/bash # 创建 cert 目录存放证书文件 CERT_DIR="./cert" mkdir -p "$CERT_DIR" # 初始化配置变量并赋予默认值 default_C=XX default_ST=Region default_L=City default_O=GlobalTrust default_OU=CryptoServices default_CN=localhost default_emailAddress=crypto@globaltrust.com default_PKCS12Password=888888** # 初始化配置变量 C= ST= L= O= OU= CN= emailAddress= PKCS12Password= # 读取命令行参数 while [[ $# -gt 0 ]]; do key="$1" case $key in C=*) C="${key#*=}" ;; ST=*) ST="${key#*=}" ;; L=*) L="${key#*=}" ;; O=*) O="${key#*=}" ;; OU=*) OU="${key#*=}" ;; CN=*) CN="${key#*=}" ;; email=*|emailAddress=*) emailAddress="${key#*=}" ;; PKCS=*|PKCS12Password=*) PKCS12Password="${key#*=}" ;; *) # unknown option ;; esac shift # past argument or value done # 使用命令行参数和默认值初始化配置变量 C="${C:-$default_C}" ST="${ST:-$default_ST}" L="${L:-$default_L}" O="${O:-$default_O}" OU="${OU:-$default_OU}" CN="${CN:-$default_CN}" emailAddress="${emailAddress:-$default_emailAddress}" PKCS12Password="${PKCS12Password:-$default_PKCS12Password}" # 检查必须的配置项是否已设置 if [ -z "$C" ] || [ -z "$ST" ] || [ -z "$L" ] || [ -z "$O" ] || [ -z "$OU" ] || [ -z "$CN" ] || [ -z "$emailAddress" ] || [ -z "$PKCS12Password" ]; then echo "Error: Missing required configuration options:" for var in C ST L O OU CN emailAddress PKCS12Password; do if [ -z "${!var}" ]; then echo " * $var" fi done exit 1 fi # 在最终生成证书的目录下生成 info.txt 文本信息 cat > "$CERT_DIR/info.txt" <<EOF # 国家代码(两个字母) C=$C # 省份或州 ST=$ST # 城市 L=$L # 组织名称 O=$O # 组织单位名称 OU=$OU # 公共名称(通常是主机名或IP地址) CN=$CN # 电子邮件地址 emailAddress=$emailAddress # PKCS12 文件密码 PKCS12Password=$PKCS12Password EOF # 生成私钥 openssl genpkey -algorithm RSA -out "${CERT_DIR}/globaltrust.key" -pkeyopt rsa_keygen_bits:2048 # 创建证书请求 openssl req -new -key "${CERT_DIR}/globaltrust.key" -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$emailAddress" -out "${CERT_DIR}/globaltrust.csr" # 创建自签名证书 openssl x509 -req -days 365 -in "${CERT_DIR}/globaltrust.csr" -signkey "${CERT_DIR}/globaltrust.key" -out "${CERT_DIR}/globaltrust.crt" # 将证书转换为 PKCS12 格式 openssl pkcs12 -export -out "${CERT_DIR}/globaltrust.p12" -in "${CERT_DIR}/globaltrust.crt" -inkey "${CERT_DIR}/globaltrust.key" -passout pass:$PKCS12Password echo "Certificates generated successfully in $CERT_DIR."如何使用保存上述脚本到一个文件中,例如 generate_cert.sh,然后通过以下命令执行它:chmod +x generate_cert.sh ./generate_cert.sh C=XX ST=Region L=City O=GlobalTrust OU=CryptoServices CN=localhost emailAddress=crypto@globaltrust.com PKCS12Password=888888**你可以通过传递不同的参数来生成带有不同配置的证书。通过远程命令生成证书为了简化证书生成过程,我们可以在服务器上部署脚本,并提供一个可远程访问的 URL。例如,如果你的服务器上部署了脚本,并且 URL 是 https://example.com/download/generate-ssl.sh,那么你可以通过以下命令轻松生成 SSL 证书:curl -sSL https://example.com/download/generate-ssl.sh | bash -s -- C=XX ST=Region L=City O=GlobalTrust OU=CryptoServices CN=localhost emailAddress=crypto@globaltrust.com PKCS12Password=888888**这条命令会下载脚本并立即执行,生成默认配置的 SSL 证书。如果需要传递参数,可以将参数添加到 bash 命令的末尾,如下所示:curl -sSL https://example.com/download/generate-ssl.sh | bash -s -- C=XX ST=Region L=City O=GlobalTrust OU=CryptoServices CN=localhost emailAddress=crypto@globaltrust.com PKCS12Password=888888**这样,你就可以通过远程调用的方式,在任何地方轻松生成自签名证书。代码详解配置变量初始化国家代码(C)default_C=XX C="${C:-$default_C}"国家代码是两个字母的缩写,例如 US 表示美国。在这个示例中,默认值为 XX,表示一个假想的国家代码。省份或州(ST)default_ST=Region ST="${ST:-$default_ST}"省份或州的名称,默认值为 Region。城市(L)default_L=City L="${L:-$default_L}"城市名称,默认值为 City。组织名称(O)default_O=GlobalTrust O="${O:-$default_O}"组织名称,默认值为 GlobalTrust。组织单位名称(OU)default_OU=CryptoServices OU="${OU:-$default_OU}"组织单位名称,默认值为 CryptoServices。公共名称(CN)default_CN=localhost CN="${CN:-$default_CN}"公共名称通常是主机名或 IP 地址,默认值为 localhost。电子邮件地址(emailAddress)default_emailAddress=crypto@globaltrust.com emailAddress="${emailAddress:-$default_emailAddress}"联系人的电子邮件地址,默认值为 crypto@globaltrust.com。PKCS12 文件密码(PKCS12Password)default_PKCS12Password=888888** PKCS12Password="${PKCS12Password:-$default_PKCS12Password}"PKCS12 文件的密码,默认值为 888888**。命令行参数解析while [[ $# -gt 0 ]]; do key="$1" case $key in C=*) C="${key#*=}" ;; ST=*) ST="${key#*=}" ;; L=*) L="${key#*=}" ;; O=*) O="${key#*=}" ;; OU=*) OU="${key#*=}" ;; CN=*) CN="${key#*=}" ;; email=*|emailAddress=*) emailAddress="${key#*=}" ;; PKCS=*|PKCS12Password=*) PKCS12Password="${key#*=}" ;; *) # unknown option ;; esac shift # past argument or value done解析命令行参数while [[ $# -gt 0 ]]; do[[ 是 Bash 中的条件测试命令。$# 表示命令行参数的数量。-gt 是 "greater than" 的缩写,表示大于。0 表示零。do 开始循环体。这段代码的意思是当命令行参数数量大于零时进入循环。key="$1"每次循环开始时,key 变量会被设置为当前命令行参数的第一个元素。case $key incase 语句用于模式匹配。它会根据 $key 的值进行匹配,并执行相应的代码块。C=*C=* 表示如果 $key 以 C= 开头,则执行后面的代码块。${key#*=}${key#*=} 是 Bash 的参数扩展语法,用于删除 $key 字符串开头的 = 符号及其前面的部分,从而提取出实际的值。;;;; 用来结束一个模式匹配的代码块。shift # past argument or valueshift 命令用于将位置参数列表向左移动一个位置,移除第一个参数。这样在下次循环时,$1 就变成了原来的 $2,以此类推。检查必须的配置项是否已设置if [ -z "$C" ] || [ -z "$ST" ] || [ -z "$L" ] || [ -z "$O" ] || [ -z "$OU" ] || [ -z "$CN" ] || [ -z "$emailAddress" ] || [ -z "$PKCS12Password" ]; then echo "Error: Missing required configuration options:" for var in C ST L O OU CN emailAddress PKCS12Password; do if [ -z "${!var}" ]; then echo " * $var" fi done exit 1 fi这段代码检查所有必需的配置选项是否已经被设置。如果任何一个选项为空,则打印错误信息并退出。生成私钥openssl genpkey -algorithm RSA -out "${CERT_DIR}/globaltrust.key" -pkeyopt rsa_keygen_bits:2048openssl 是 OpenSSL 工具的命令。genpkey 用于生成公私钥对。-algorithm RSA 指定算法为 RSA。-out "${CERT_DIR}/globaltrust.key" 指定输出文件路径。-pkeyopt rsa_keygen_bits:2048 设置 RSA 密钥长度为 2048 位。创建证书请求openssl req -new -key "${CERT_DIR}/globaltrust.key" -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$emailAddress" -out "${CERT_DIR}/globaltrust.csr"req 用于创建证书请求。-new 表示创建一个新的请求。-key "${CERT_DIR}/globaltrust.key" 指定私钥文件路径。-subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$emailAddress" 设置请求的主体信息。-out "${CERT_DIR}/globaltrust.csr" 指定输出文件路径。创建自签名证书openssl x509 -req -days 365 -in "${CERT_DIR}/globaltrust.csr" -signkey "${CERT_DIR}/globaltrust.key" -out "${CERT_DIR}/globaltrust.crt"x509 用于处理 X.509 证书。-req 表示处理的是一个证书请求。-days 365 设置证书的有效期为 365 天。-in "${CERT_DIR}/globaltrust.csr" 指定证书请求文件路径。-signkey "${CERT_DIR}/globaltrust.key" 指定用于签名的私钥文件路径。-out "${CERT_DIR}/globaltrust.crt" 指定输出文件路径。将证书转换为 PKCS12 格式openssl pkcs12 -export -out "${CERT_DIR}/globaltrust.p12" -in "${CERT_DIR}/globaltrust.crt" -inkey "${CERT_DIR}/globaltrust.key" -passout pass:$PKCS12Passwordpkcs12 用于处理 PKCS #12 文件。-export 表示导出证书和私钥。-out "${CERT_DIR}/globaltrust.p12" 指定输出文件路径。-in "${CERT_DIR}/globaltrust.crt" 指定证书文件路径。-inkey "${CERT_DIR}/globaltrust.key" 指定私钥文件路径。-passout pass:$PKCS12Password 设置导出文件的密码。输出提示信息echo "Certificates generated successfully in $CERT_DIR."最后输出一条成功消息,告知证书已成功生成。以上就是使用一行代码生成 OpenSSL 自签名证书的方法及其详细解释。通过这种方式,你可以快速地为你的开发环境生成所需的证书,无需复杂的配置过程。通过远程命令的方式,你还可以方便地在任意位置生成证书。
2024年09月05日
58 阅读
0 评论
0 点赞
1
2
3
...
10
您的IP: