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

openssl3.2 - 官方demo学习 - test - certs

文章目录

    • openssl3.2 - 官方demo学习 - test - certs
    • 概述
    • 笔记
    • .sh的执行语句打印的方法
    • 要修改的实际函数
    • END

openssl3.2 - 官方demo学习 - test - certs

概述

官方demos目录有证书操作的例子
在这里插入图片描述
已经做了笔记 openssl3.2 - 官方demo学习 - certs
但是这个demos/certs目录的脚本, 并没有演示如何操作PKCS12证书.

在官方给的程序例子中, 有操作PKCS12证书的工程, 但是却没有配套的PKCS12证书. 这咋弄?
翻了一下openssl源码工程, 发现测试目录中有2个脚本, 非常精彩, 比官方demos目录给出的脚本能操作的证书详细多了. 里面也有PKCS12证书的例子.
在这里插入图片描述
将test/certs目录中除了2个.sh都删掉, 在cygwin64下执行setup.sh, 可以将证书全部生成出来. 不过有报错, 原因是cygwin64中带的openssl是3.0.12, 不是最新版的3.2.
cygwin64升到最新的openssl也不是最新版的3.20.
这个目录是openssl自己测试用的, 证书的操作应该是最全的.

但是, 这2个.sh是bash脚本, 运行起来, 看不到执行了啥命令行(最终执行的都是openssl命令行).
想改一下.sh, 将最终执行的openssl命令行打印出来, 让人眼能看到. 然后我就可以在用windows下的openssl带相同命令行做相同的事情了.

笔记

.sh的执行语句打印的方法

在原有的这2个.sh上, 加了一个简单的测试函数, 测试了好使, 修改的思路就这么定了.

# this funciton test_exec() on mkcert.sh
test_exec()
{# 变量 - 赋值TEST_CMD="ls -l"# 变量 - 打印echo "TEST_CMD = $TEST_CMD"# 变量 - 执行$TEST_CMD 
}
# this call on setup.sh
./mkcert.sh test_exec

在cygwnwin64环境下, 执行如下语句, 可以执行到test_exec()
在程序执行的同时, 将执行的命令行也打印出来了. 这就是我想要的效果.

chenx@ls-Precision3561 /cygdrive/d/my_dev/my_local_git_prj/study/sh
$ ./setup.sh
TEST_CMD = ls -l
total 20
-rwxrwx---+ 1 Administrators chenx 12465 Jan 17 18:24 mkcert.sh
-rwxrwx---+ 1 Administrators chenx   138 Jan 17 18:25 setup.sh

要修改的实际函数

官方原始的脚本, 是执行 ./setup.sh, 间接的调用mkcert.sh(作为脚本库)来干活.
setup.sh中, 都是调用mkcert.sh中的脚本函数, 看不到任何openssl相关的东西

./mkcert.sh genroot "Root CA" root-key root-cert

在mkcert.sh中, 先经过中间函数处理传入的参数, 最终会进入到有openssl最终调用的函数中.
包含openssl最终调用的函数有4个(cert(), req_nocn(), req(), key()), 如下.

key() {local key=$1; shiftlocal alg=rsaif [ -n "$OPENSSL_KEYALG" ]; thenalg=$OPENSSL_KEYALGfilocal bits=2048if [ -n "$OPENSSL_KEYBITS" ]; thenbits=$OPENSSL_KEYBITSfiif [ ! -f "${key}.pem" ]; thenargs=(-algorithm "$alg")case $alg inrsa) args=("${args[@]}" -pkeyopt rsa_keygen_bits:$bits );;ec)  args=("${args[@]}" -pkeyopt "ec_paramgen_curve:$bits")args=("${args[@]}" -pkeyopt ec_param_enc:named_curve);;dsa)  args=(-paramfile "$bits");;ed25519)  ;;ed448)  ;;*) printf "Unsupported key algorithm: %s\n" "$alg" >&2; return 1;;esacstderr_onerror \openssl genpkey "${args[@]}" -out "${key}.pem"fi
}# Usage: $0 req keyname dn1 dn2 ...
req() {local key=$1; shiftkey "$key"local errsstderr_onerror \openssl req -new -"${OPENSSL_SIGALG}" -key "${key}.pem" \-config <(printf "string_mask=%s\n[req]\n%s\n%s\n[dn]\n" \"$REQMASK" "prompt = no" "distinguished_name = dn"for dn in "$@"; do echo "$dn"; done)
}req_nocn() {local key=$1; shiftkey "$key"stderr_onerror \openssl req -new -"${OPENSSL_SIGALG}" -subj / -key "${key}.pem" \-config <(printf "[req]\n%s\n[dn]\nCN_default =\n" \"distinguished_name = dn")
}cert() {local cert=$1; shiftlocal exts=$1; shiftstderr_onerror \openssl x509 -req -"${OPENSSL_SIGALG}" -out "${cert}.pem" \-extfile <(printf "%s\n" "$exts") "$@"
}

对sh编程不熟, 但是能看懂. 小动一下是可以的.
这4个函数最终调用openssl时, 参数给的比较复杂, 如果直接用echo来打印最终的命令行, 试过了, 不好使.
原因是, 这个命令行中有一些即时生成的参数, 如果用echo直接打印, 看不到真正的变量值.

准备将传给openssl的参数再复制给一些中间变量, 最后再将拼好的中间变量再传给openssl, 这样就能打印出命令行了.

准备改这4个函数, 将最终要执行的openssl命令行打印出来, 且能正常执行openssl命令.

END

相关文章:

openssl3.2 - 官方demo学习 - test - certs

文章目录 openssl3.2 - 官方demo学习 - test - certs概述笔记.sh的执行语句打印的方法要修改的实际函数END openssl3.2 - 官方demo学习 - test - certs 概述 官方demos目录有证书操作的例子 已经做了笔记 openssl3.2 - 官方demo学习 - certs 但是这个demos/certs目录的脚本,…...

Spring MVC学习之——异常处理器

异常处理器 如果不加以异常处理&#xff0c;错误信息肯定会抛在浏览器页面上&#xff0c;这样很不友好&#xff0c;所以必须进行异常处理。 1.异常处理思路 系统的dao、service、controller出现都通过throws Exception向上抛出&#xff0c;最后由springmvc前端控制器交由异常…...

HTTP API 认证技术详解(四):HMAC Authentication

目录 什么是 HMAC Authentication 认证 HMAC Authentication 原理 HMAC Authentication 认证的步骤 使用 Golang 实现 HMAC Authentication 认证 HMAC Authentication 认证的安全性 HMAC 认证的最佳实践 小结 HTTP API 认证技术主要用于验证客户端身份&#xff0c;并确保…...

如何绘制出图像的色素分布直方图

效果 如图&#xff0c;可以展示出我们的图像的颜色分布直方图,表明的图像的亮和暗 实现可视化色素分布直方图方法 这里我们对我们的灰色图片和彩色图片进行了直方图显示 import cv2 import matplotlib.pyplot as plt image cv2.imread("test.jpg") # 彩色图片->…...

esp32-c-简单应用笔记

1、资料 ESP32 开发环境 Espressif-IDE: https://blog.csdn.net/chuner0425/article/details/123466848 https://blog.csdn.net/bin_zhang1/article/details/129993820?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-1299938…...

What is `XSS` does?

跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;XSS&#xff09;是一种针对网站应用程序的安全漏洞&#xff0c;允许攻击者将恶意脚本注入到其他用户查看的网页中。当这些用户访问受感染的页面时&#xff0c;他们的浏览器会执行这些恶意脚本&#xff0c;导致各种安全…...

【文档数据库】ES和MongoDB的对比

目录 1.由文档存储牵出的问题 2.什么是MongoDB&#xff1f; 3.ES和MongoDB的对比 1.由文档存储牵出的问题 本文或者说关于mongodb的这个系列文章的源头&#xff1a; 前面我们聊过了分布式链路追踪系统&#xff0c;在基于日志实现的分布式链路追踪的方式seluthzipkin中为了…...

VUE工程化项目--vue组件化

组件化开发 & 根组件 &#xff1a; ① 组件化&#xff1a; 一个页面可以拆分成 一个个组件 &#xff0c;每个组件有着自己独立的 结构、样式、行为 。 好处&#xff1a;便于 维护 &#xff0c;利于 复用 → 提升 开发效率 。 组件分类&#xff1a;普通组件、根组件。 …...

iOS base64 转 data |图片Base64转NSData | UIImageView | UIImage

Api 接口返回 base64 图片字符串&#xff0c;需要显示在UIImageView 上。 假设 string类型的 base64ImageStr 为 api返回的 base64字符串 将base64字符串进行处理 //去除掉首尾的空白字符和换行字符NSString * img64 [img stringByTrimmingCharactersInSet:[NSCharacterSet …...

Unity面试笔记:Unity常见关键词概念

Unity面试笔记&#xff1a;Unity常见关键词概念 Invoke 延迟函数 和 Coroutine协程 和 Thread线程帧缓冲区&#xff08;Frame buffer&#xff09;颜色缓冲区&#xff08;Color buffer&#xff09;深度缓冲区&#xff08;Depth buffer&#xff09;模板缓冲区&#xff08;Stencil…...

gRPC vs HTTP

性能 gRPC 消息使用 Protobuf&#xff08;一种高效的二进制消息格式&#xff09;进行序列化。 Protobuf 在服务器和客户端上可以非常快速地序列化。 Protobuf 序列化产生的有效负载较小&#xff0c;这在移动应用等带宽有限的方案中很重要。 gRPC 专为 HTTP/2&#xff08;HTTP…...

vue 导出el-table表格数据

1.先安装 file-saver 、xlsx 组件 npm install file-saver -Snpm intsall xlsx -S 2.html 代码 <el-table :data"elTable" ref"" id"table-content"><el-table-column label"其他" align"center"></el-…...

【问题记录】AttributeError: module ‘numpy‘ has no attribute ‘bool‘

服务器上运行代码报错&#xff1a; /opt/conda/envs/clrnet/lib/python3.8/site-packages/imgaug-0.4.0-py3.8.egg/imgaug/augmenters/meta.py:3368: FutureWarning: In the future np.bool will be defined as the corresponding NumPy scalar. augmenter_active np.zeros((n…...

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html...

Intel Quartus II IP之DP1.4 工程的创建与使用

前述&#xff1a; Win10电脑安装了Quartus 21.4&#xff0c;这可以满足绝大多数工程&#xff0c;特别是对于简单调用fifo/ram等的工程&#xff0c;但是想要学习Quartus的HDMI/DP等高速接口类IP&#xff0c;首先需要创建HDMI/DP IP的设计demo工程&#xff0c;此时还需要安装Ecl…...

k8s集群环境搭建以及插件安装

前置条件 终端工具MobaXterm很好用。 1、虚拟机三台&#xff08;ip按自己的网络环境相应配置&#xff09;(master/node) 节点ipk8s-master192.168.200.150k8s-node1192.168.200.151k8s-node2192.168.200.152 2、关闭防火墙(master/node) systemctl stop firewalld systemc…...

面试的那些事儿

先从面试来说 假如你是网申&#xff0c;你的简历必然会经过HR的筛选&#xff0c;一张简历HR可能也就花费10秒钟看一下&#xff0c;然后HR 就会决定你这一关是Fail还是Pass。 假如你是内推&#xff0c;如果你的简历没有什么优势的话&#xff0c;就算是内推你的人再用心&#x…...

ffmpeg音视频解码

ffmpeg音视频解码 一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu&#xff08;Linux&#xff09;中编译Android平台的FFmpeg&#xff08; arm和x86 &#xff09;5.解压FFmpeg6.Android编译脚本&#xff08;1&#xff09;修改…...

uniapp uni.chooseLocation调用走失败那里,错误码:112

问题&#xff1a;我配置了百度上所有能配置的&#xff0c;一直调用不成功&#xff0c;如下图配置的 1:第一个 配置 代码&#xff1a; "permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}…...

第一次开发基于SpringBoot的Java应用

第一次开发基于SpringBoot的Java应用 一、 方式1&#xff1a;IDEA创建New Project Spring Boot官方文档的Getting Started1、IDEA创建New Project2、Spring Boot官方文档的Getting Started2.1 Creating the POM &#xff08;实际是&#xff0c;更新pom.xml&#xff09;2.2 Add…...

2025亲测好用的论文降AI工具,降重稳还不打乱原格式

说真的&#xff0c;现在写论文最慌的已经不是重复率飘红&#xff0c;而是AI检测率超标。尤其是用过AI辅助写作或者改写的同学&#xff0c;检测报告一出来AI率直奔80%&#xff0c;导师一句“这是你自己写的&#xff1f;”就能让人瞬间心脏骤停。 我最近花了一周时间&#xff0c;…...

提示词失效?Midjourney印象派出图不稳的8大陷阱,资深AIGC架构师逐帧解析SD/MJ风格迁移差异

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;提示词失效的本质&#xff1a;当语义熵击穿Midjourney的隐空间边界 当“cyberpunk cat wearing neon sunglasses, ultra-detailed, 8k”生成结果突然坍缩为 a blurry humanoid silhouette with cat ears&…...

【专利视点】某抗病毒药物领域明星企业上市进程知产问题分析

医药领域IPO&#xff0c;正在随着证券市场监管新形势而发生变化&#xff0c;并从CXO板块向更多细分赛道延伸。知识产权问题是影响企业IPO上市的重要因素之一。从上海证券交易所官网统计得知&#xff0c;截至2024年10月14日&#xff0c;有102家医药制造业企业终止科创板IPO申请&…...

【芯片测试】:自定义波形与条件波形

第四篇&#xff1a;进阶篇&#xff08;上&#xff09;—— 用户自定义波形与条件波形 系列&#xff1a;《VCDSTIL 实战&#xff1a;从仿真波形到 ATE 测试向量》第 4 篇&#xff08;共 5 篇&#xff09; 前言 前三篇介绍的都是 VCDSTIL 的"自动提取"模式&#xff1a…...

干货合集:2026最新AI论文软件测评与推荐大全

2026年真正好用的AI论文软件&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

终极QR码修复指南:如何用QrazyBox免费恢复损坏的二维码

终极QR码修复指南&#xff1a;如何用QrazyBox免费恢复损坏的二维码 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾遇到过重要的二维码因为打印模糊、水渍污染或物理磨损而无法扫描&a…...

RAG:终结AI幻觉,让你的大语言模型秒变“知识渊博”!

本文深入浅出地介绍了检索增强生成&#xff08;RAG&#xff09;技术&#xff0c;解释了其如何通过结合文档检索与大语言模型&#xff08;LLM&#xff09;&#xff0c;有效减少AI幻觉现象。文章详细阐述了RAG的工作流程&#xff0c;包括数据分块、嵌入转换、向量数据库存储、问题…...

针对现在的AI模型的token中转转包业务的分析

&#x1f4ca; 价格优势深度分析 1. 价格差异全景图&#xff08;2026年实测数据&#xff09; 服务类型1亿Token价格价格倍差适用场景超低价陷阱1351倍个人测试、极低质量需求主流中转站800-1,5006-11倍中小企业、开发者合规服务商3,000-5,00022-37倍企业级应用、生产环境官方…...

OpCore-Simplify:10分钟搞定黑苹果配置,告别3天手动调试的智能神器

OpCore-Simplify&#xff1a;10分钟搞定黑苹果配置&#xff0c;告别3天手动调试的智能神器 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂…...

以 AIGC 贯通设计 — 生产 — 营销:集之互动推动服装电商供应链进入全域协同新阶段

在快时尚主导、高频上新成为标配、流量窗口以周甚至以天计算的今天&#xff0c;服装电商的核心竞争力早已从单一的产品力、营销力&#xff0c;转向全链路供应链效率的竞争。当前行业普遍面临的痛点不再是某一环节的短板&#xff0c;而是全链路割裂&#xff1a;设计端与市场需求…...