gmssl常用命令 - 需要持续更新

news/2025/11/11 19:44:39/文章来源:https://www.cnblogs.com/JackShi/p/19211413
1. 生成私钥
OpenSSL (RSA)
# 生成RSA私钥
openssl genrsa -out private_key.key 2048
# 生成RSA私钥(带密码)
openssl genrsa -out private_key.key -aes256 -passout pass:password 2048GMSSL (SM2)
# 生成SM2私钥
gmssl ecparam -genkey -name sm2p256v1 -out private_key.key
# 或者使用gmssl专用命令
gmssl sm2 -genkey -out private_key.key
# 生成SM2私钥(带密码)
gmssl sm2 -genkey -out private_key.key -passout pass:password2. 生成证书请求 (CSR)
OpenSSL
# 生成证书请求
openssl req -new -key private_key.key -out cert.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Company/CN=example.com"
# 交互式生成
openssl req -new -key private_key.key -out cert.csrGMSSL
# 生成SM2证书请求
gmssl req -new -key private_key.key -out cert.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Company/CN=example.com"
# 交互式生成
gmssl req -new -key private_key.key -out cert.csr
# 指定签名算法(国密)
gmssl req -new -key private_key.key -out cert.csr -sm3 -sigopt "distid:1234567812345678"3. 生成自签名证书
OpenSSL
# 生成自签名证书
openssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.crt
# DER格式
openssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.der -outform DERGMSSL
# 生成SM2自签名证书
gmssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.crt -sm3 -sigopt "distid:1234567812345678"
# DER格式
gmssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.der -outform DER -sm34. 查看证书信息
OpenSSL
# 查看PEM格式证书
openssl x509 -in cert.crt -text -noout
# 查看DER格式证书
openssl x509 -in cert.der -inform DER -text -noout
# 查看证书主题
openssl x509 -in cert.crt -subject -nooutGMSSL
# 查看SM2证书(语法相同)
gmssl x509 -in cert.crt -text -noout
# 查看从证书中提出的公钥文件的内容(16进制公钥)
$GMSSL_PATH ec -pubin -in ../cert_path/pub_key.pem -text -noout
# 查看DER格式
gmssl x509 -in cert.der -inform DER -text -noout
# 查看证书主题
gmssl x509 -in cert.crt -subject -noout5. 查看私钥信息
OpenSSL
# 查看RSA私钥
openssl rsa -in private_key.key -text -noout
# 查看私钥(带密码)
openssl rsa -in private_key.key -text -noout -passin pass:passwordGMSSL
# 查看SM2私钥
gmssl ec -in private_key.key -text -noout
# 或者
gmssl sm2 -in private_key.key -text -noout
# 查看私钥(带密码)
gmssl sm2 -in private_key.key -text -noout -passin pass:password6. PKCS#12 格式转换
OpenSSL
# 生成PKCS12文件
openssl pkcs12 -export -out cert.p12 -inkey private_key.key -in cert.crt -passout pass:password
# 从PKCS12提取证书和私钥
openssl pkcs12 -in cert.p12 -nodes -out cert_and_key.pem -passin pass:passwordGMSSL
# 生成SM2的PKCS12文件
gmssl pkcs12 -export -out cert.p12 -inkey private_key.key -in cert.crt -passout pass:password
# 从PKCS12提取(语法相同)
gmssl pkcs12 -in cert.p12 -nodes -out cert_and_key.pem -passin pass:password7. 证书格式转换
OpenSSL
# PEM转DER
openssl x509 -in cert.crt -outform DER -out cert.der
# DER转PEM
openssl x509 -in cert.der -inform DER -outform PEM -out cert.crtGMSSL
# PEM转DER(语法相同)
gmssl x509 -in cert.crt -outform DER -out cert.der
# DER转PEM
gmssl x509 -in cert.der -inform DER -outform PEM -out cert.crt8. 验证证书
OpenSSL
# 验证证书
openssl verify -CAfile ca.crt cert.crt
# 验证证书链
openssl verify -CAfile ca.crt -untrusted intermediate.crt cert.crtGMSSL
# 验证SM2证书(语法相同)
gmssl verify -CAfile ca.crt cert.crt
# 验证证书链
gmssl verify -CAfile ca.crt -untrusted intermediate.crt cert.crt9. 加密/解密
OpenSSL
# RSA加密
openssl rsautl -encrypt -in plaintext.txt -out encrypted.bin -inkey public_key.pem -pubin
# RSA解密
openssl rsautl -decrypt -in encrypted.bin -out decrypted.txt -inkey private_key.keyGMSSL
# SM2加密
gmssl sm2utl -encrypt -in plaintext.txt -out encrypted.bin -pubin -inkey public_key.pem
# SM2解密
gmssl sm2utl -decrypt -in encrypted.bin -out decrypted.txt -inkey private_key.key10. 签名/验签
OpenSSL
# RSA签名
openssl dgst -sha256 -sign private_key.key -out signature.bin data.txt
# RSA验签
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txtGMSSL
# SM2签名(使用SM3)
gmssl dgst -sm3 -sign private_key.key -out signature.bin data.txt
# SM2验签
gmssl dgst -sm3 -verify public_key.pem -signature signature.bin data.txt
# 或者使用sm2utl
gmssl sm2utl -sign -in data.txt -out signature.bin -inkey private_key.key
gmssl sm2utl -verify -in data.txt -signature signature.bin -pubin -inkey public_key.pem11. 提取公钥
$GMSSL_PATH x509 -in test1102_py/aaa.pem -pubkey -noout

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:根据用户行为数据中的判断列表在 Elasticsearch 中训练 LTR 模型

实用指南:根据用户行为数据中的判断列表在 Elasticsearch 中训练 LTR 模型pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

转转客服IM聊天系统背后的技术挑战和实践分享

转转客服IM聊天系统背后的技术挑战和实践分享在当今互联网时代,高效的用户服务是提升用户体验的关键。转转自研的客服IM聊天系统作为用户与客服沟通的桥梁,承担着传递信息、解决问题的关键角色。然而,消息数据的流转…

英语_阅读_Computers_待读

The development of computers has been one of the most important advances in modern history. 计算机的发展是现代历史上最重要的进步之一。 Early computers were huge machines that took up entire rooms. 早期…

202511.11 - A

今天上了工程实训和英语,学期已过半,着手准备期末,加油

AT_arc160_c [ARC160C] Power Up

典,做过一遍就会了。 考虑设 \(f_{i, j}\) 表示从小到大到了\(i\),目前能够有 \(j\) 个数为 \(i\) 的不同集合方案数,转移写个前缀和可以简单做到 \(O(n^2)\)。 优化的契机就在于,这个合并的过程是指数级增长的,每…

英语_阅读_Life in cities_待读

Life in cities has changed remarkably over the decades. 几十年来,城市生活发生了显著的变化。 In the past, urban areas were crowded with people and busy markets, making them incredibly lively but somewh…

实验 5:ViT Swin Transformer

软件工程原理与实践(实验五)姓名: 学号: 姓名和学号课程 中国海洋大学 25 秋《软件工程原理与实践》实验名称 实验 5:ViT & Swin Transformer博客链接一、实验内容 1.1 Vision TransformerViT 网络详解 使用…

一个强大的排序工具

有人want to sort a 20GB binary file that contains 30-byte key and 20 byte value placed in a contiguous manner,stackoverflow上的最高赞回答是hexdump, sort再xxd转回来〔链接〕。 有明白人指出这样需要越70G的…

数据采集_2

数据采集_2目录第一题:爬取天气预报核心代码与运行结果:心得体会:第二题:爬取股票信息核心代码与运行结果:心得体会:第三题:爬取软科所有院校信息核心代码与运行结果:心得体会: 第一题:爬取天气预报 核心代码与运行结果…

chatTTS源码版本地部署踩的坑

打包版直接下载release版本后解压点击app.exe运行即可,首次会下载模型,时间会比较久一些,下载完成后就自动打开网站了,没啥难点,讲一下源码部署, 首先在github下载源码:https://github.com/jianchang512/ChatTT…

第一讲机器学习基础

第一讲机器学习基础 1.机器学习≈找一个函数 2.深度学习就是用类神经网络制造函数-->输入可以是:向量、矩阵、序列(语音、文本) 输出可以是:数值(回归任务)、类别(分类)、文本图片 3.机器学习方法 (1)sup…

Linux服务器编程实践20-TCP服务 vs UDP服务:核心差异对比 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第二十八天

一、核心知识点梳理 1. 图的定义与本质:由顶点(Vertex)和边(Edge)组成的非线性数据结构,用于描述多对多的关联关系(区别于树的父子层级关系)。 2. 关键概念区分:有向图(边带方向,如社交软件的关注关系) vs…

当世人 逐渐将英雄遗忘 我最终展露了疯狂 与烧灼许久的欲望 已无人描绘 我的画像

test37没有大样例。小样例无法复制。没有部分分。题解几句话。证明留作作业。就给个std。三道图论。四题都是问最小代价。交换来的。均分纸牌 猜测上界是 \(n-1\),所以现在希望每个间隔是经过一次,因为间隔左右的和是…

关于IP、TCP、UDP的校验和计算

1. MAC MAC没有校验和的概念,可能设计者认为L2层不容易出错,就没有设计 2. IP IP的校验和仅校验首部(而不是校验整个IP包),这是出于性能考虑:如果每一跳都要校验全部数据,那对网络的压力太大了,所以IP被设计为…

元叙事提示注入:突破AI安全边界的攻击技术

本文深入探讨元叙事提示注入技术,通过三个实际案例展示如何通过直接与AI系统对话来绕过安全机制,包括Google Gemini后端代码执行、SOC分析应用和GCP云助手的漏洞利用。元叙事提示注入 2025年10月20日 在利用AI应用程…

NOIP 2025 游记

2023 noip 拿了 \(100+20+ε=120+ε\) 分。 2024 noip 拿了 \(55+100+4+20=179\) 分。 我今年能翻盘吗?回望初三一整年,我似乎一点进步都没有呢。失去你 我忘了天空曾经是 蓝色 找不到你 我眼睛才在帽子下 躲着 不是…

FZNCTF2025-PWN-WP

FZNCTF-Langx-PWN-WP fmt 格式化字符串漏洞 int __fastcall main(int argc, const char **argv, const char **envp) {int fd; // [rsp+4h] [rbp-24Ch]char buf[48]; // [rsp+10h] [rbp-240h] BYREFchar format[520]; …

102302138 林楚涵 作业2

🌦️ 第二次爬虫作业实录|天气 + 股票 + 大学榜作业①:在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在数据库。 ① 核心代码与运行截图点击查看代码 import sqlite3, urllib.reques…