Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GmSSL - GmSSL的编译、安装和命令行基本指令

GmSSL - GmSSL的编译、安装和命令行基本指令

作者头像
小小工匠
发布于 2024-05-25 12:12:22
发布于 2024-05-25 12:12:22
1K03
代码可运行
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构
运行总次数:3
代码可运行

Pre

Java - 一文读懂SM1、SM2、SM3、SM4等国密算法

Java - OpenSSL与国密OpenSSL

Java - 数字签名与数字证书

下载源代码(zip)

下载源代码(zip): https://github.com/guanzhi/GmSSL/archive/master.zip

解压缩至当前工作目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ unzip GmSSL-master.zip

编译与安装

Linux平台

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make test
$ sudo make install

安装之后可以执行gmssl命令行工具检查是否成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gmssl version
GmSSL 3.1.0 Dev

SM4加密解密

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ KEY=11223344556677881122334455667788
$ IV=11223344556677881122334455667788

$ echo hello | gmssl sm4 -cbc -encrypt -key $KEY -iv $IV -out sm4.cbc
$ gmssl sm4 -cbc -decrypt -key $KEY -iv $IV -in sm4.cbc

$ echo hello | gmssl sm4 -ctr -encrypt -key $KEY -iv $IV -out sm4.ctr
$ gmssl sm4 -ctr -decrypt -key $KEY -iv $IV -in sm4.ctr

SM3摘要

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ echo -n abc | gmssl sm3
$ gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem
$ echo -n abc | gmssl sm3 -pubkey sm2pub.pem -id 1234567812345678
$ echo -n abc | gmssl sm3hmac -key 11223344556677881122334455667788

SM2签名及验签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem

$ echo hello | gmssl sm2sign -key sm2.pem -pass 1234 -out sm2.sig #-id 1234567812345678
$ echo hello | gmssl sm2verify -pubkey sm2pub.pem -sig sm2.sig -id 1234567812345678

$ echo hello | gmssl sm2encrypt -pubkey sm2pub.pem -out sm2.der
$ gmssl sm2decrypt -key sm2.pem -pass 1234 -in sm2.der

SM2加密及解密

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem

$ echo hello | gmssl sm2encrypt -pubkey sm2pub.pem -out sm2.der
$ gmssl sm2decrypt -key sm2.pem -pass 1234 -in sm2.der

生成SM2根证书rootcakey.pem及CA证书cakey.pem

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gmssl sm2keygen -pass 1234 -out rootcakey.pem
$ gmssl certgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN ROOTCA -days 3650 -key rootcakey.pem -pass 1234 -out rootcacert.pem -key_usage keyCertSign -key_usage cRLSign
$ gmssl certparse -in rootcacert.pem

$ gmssl sm2keygen -pass 1234 -out cakey.pem
$ gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN "Sub CA" -days 3650 -key cakey.pem -pass 1234 -out careq.pem
$ gmssl reqsign -in careq.pem -days 365 -key_usage keyCertSign -path_len_constraint 0 -cacert rootcacert.pem -key rootcakey.pem -pass 1234 -out cacert.pem

使用CA证书签发签名证书和加密证书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gmssl sm2keygen -pass 1234 -out signkey.pem
$ gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN localhost -days 365 -key signkey.pem -pass 1234 -out signreq.pem
$ gmssl reqsign -in signreq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out signcert.pem

$ gmssl sm2keygen -pass 1234 -out enckey.pem
$ gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN localhost -days 365 -key enckey.pem -pass 1234 -out encreq.pem
$ gmssl reqsign -in encreq.pem -days 365 -key_usage keyEncipherment -cacert cacert.pem -key cakey.pem -pass 1234 -out enccert.pem

将签名证书和ca证书合并为服务端证书certs.pem,并验证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cat signcert.pem > certs.pem
$ cat cacert.pem >> certs.pem
$ gmssl certverify -in certs.pem -cacert rootcacert.pem

查看证书内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gmssl certparse -in cacert.pem

http://gmssl.org/docs/quickstart.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GmSSL支持SM2/SM3/SM4/SM9/SSL国产商用密码开源库
GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。
Tinywan
2024/07/05
1.4K0
GmSSL支持SM2/SM3/SM4/SM9/SSL国产商用密码开源库
YashanDB TLCP连接配置
YashanDB启用TLCP连接要求由Gmssl工具生成相关证书,在完成相关证书的正确配置后,通讯时进行客户端到服务端的安全验证。
用户10349277
2025/03/28
810
一个支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱
转:https://blog.csdn.net/xuq09/article/details/91815366
墨文
2020/02/28
2.6K0
CA中心构建及证书签发实录
本实验中,我们将通过开源工具OpenSSL构建一个私有CA中心,并以其为根CA,设立一个子CA机构,并为Client提供证书签署服务。
用户1456517
2019/03/05
1.4K0
CA中心构建及证书签发实录
openssl生成cer证书_tls证书生成
wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz
全栈程序员站长
2022/11/04
3K0
Nginx 进阶 (ssl、fpm、rewrite、cache配置等)
一、配置https网站 1、自建CA (1)生成私钥文件 mkdir -p /etc/pki/CA/private #创建私钥保存的目录 (umask 077;openssl genrsa -out
小小科
2018/05/04
1.1K0
Nginx 进阶 (ssl、fpm、rewrite、cache配置等)
利用httpd+OpenSSL来实现网站的https
                                        CA验证中心(颁发/吊销证书)                                         /                \ \                                  CA 证书    /            下发  \ \ 证书请求                                         /            证书  \ \                                   client <--------数字证书------ WEB
星哥玩云
2022/06/30
2720
OpenSSL - 利用OpenSSL自签证书和CA颁发证书
秘钥操作 这个命令会生成一个1024/2048位的密钥,包含私钥和公钥。 openssl genrsa -out private.key 1024/2038                     (with out password protected)    openssl genrsa -des3 -out private.key 1024/2048    (password protected) 这个命令可以利用private.key文件生成公钥。 openssl rsa -in private.k
Aichen
2018/05/18
6.9K0
自从掌握了网络安全,工资直接翻了番,真香!
早期的互联网 -- 1980年代,我们需要共享数据,传输数据;所传输或者共享的数据均为明文,随着互联网发展,安全成为了国家的一种战略资源。我们做的,比如编程,运维 -- 手工业安全属于一种科学研究--安全的算法都是需要以数学难题为基础来进行研究,每个国家都疯狂的去研究自己的加密算法,以及去破译别人的加密算法;美国--禁止出口长于256位的加密算法,DH算法 -- 密钥交换(交换对称密钥)。
Java程序猿
2023/02/24
4540
利用httpd+openssl来实现网站的https
                                        CA验证中心(颁发/吊销证书)                                         /                 \ \                                  CA 证书    /             下发   \ \ 证书请求                                          /             证书   \ \                                    client <--------数字证书------ WEB 1。web服务器,生成非对称加密密钥对(web公钥,web私钥) 2。web服务器使用 web身份信息+web公钥 生成 web服务器的证书请求 ,并将证书请求发给CA服务器 3。CA服务器使用 CA的私钥 对 web 服务器的证书请求 进行数字签名得到 web服务器的数字证书,并将web服务器的数字证书颁发给web服务器。 4。client访问web服务器,请求https连接,下载web数字证书 5。client下载 CA数字证书(CA身份信息+CA公钥,由上一级CA颁发,也可自签名颁发),验证 web数字证书(CA数字证书中有CA公钥,web数字证书是使用CA私钥签名的) 6。client与web协商对称加密算法,client生成对称加密密钥并使用web公钥加密,发送给web服务器,web服务器使用web私钥解密 7。使用对称加密密钥传输数据,并校验数据的完整性 利用httpd+openssl来实现网站的https
DevinGeng
2019/04/09
4630
openssl创建CA、申请证书及其给web服务颁发证书
一、创建私有的CA 1)查看openssl的配置文件:/etc/pki/tls/openssl.cnf 2)创建所需的文件 touch /etc/pki/CA/index.txt echo 01
小小科
2018/05/04
2.4K0
openssl创建CA、申请证书及其给web服务颁发证书
基于 OpenSSL 的 CA 建立及证书签发
前段时间研究了一下 SSL/TLS ,看的是 Eric Rescorla 的 SSL and TLS - Designing and Building Secure Systems 的中文版(关于该中文版的恶劣程度,我在之前的一篇 Blog 中已做了严厉的批判)。本书的作者沿袭了 Stevens 在其神作 TCP/IP Illustrated 中的思想:使用网络嗅探进行协议演示。不同的是,作者并没有使用 tcpdump ,而是使用了自己编写的专用于嗅探 SSL/TLS 通讯的ssldump 。为了对书中的一些内容进行试验确认,我决定使用 ssldump 进行一些实验。然而,进行 SSL/TLS 通讯,至少需要一份 CA 签发的证书才可以得以完成,仅仅是做个实验,我自然不会花天价去买个证书,所以决定自己建 CA 签发证书。
呆呆
2021/05/26
2.3K0
自签CA和SSL证书
字段 值 countryName 国家名缩写 stateOrProvinceName 州或省 localityName 地点,如城市 organizationName 组织名 commonName 商标(证书上显示的 CA 名称)
jwj
2022/05/18
1.9K0
写给开发人员的实用密码学 - 数字签名
办理过买房抵押贷款的朋友,应该还记得在贷款合同上不断按手印。这种现实世界的签字画押,一方面是保证合同的文本不会替换,另一方面双方事后都不能否认此次交易(个人方面靠签字和手印,银行方靠公章)。
云水木石
2021/04/01
8590
写给开发人员的实用密码学 - 数字签名
使用 openssl 生成证书(含openssl详解)
openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS 协议的实现。 官网:https://www.openssl.org/source/
菲宇
2019/06/12
18.8K0
使用 openssl 生成证书(含openssl详解)
自建CA认证和证书
X.509:定义了证书的结构和认证协议的标准。包括版本号、序列号、签名算法、颁发者、有效期限、主体名称、主体公钥、CRL分发点、扩展信息、发行者签名等
咻一咻
2020/05/29
3.6K0
搭建个人国密CA(Certification Authority)
在SSL/TLS/HTTPS通信中,证书虽然不是TLS/SSL协议的一部分,却是HTTPS非常关键的一环,网站引入证书才能避免中间人攻击。证书涉及了很多密码学知识,理解证书后,再深入理解TLS/SSL协议,效果会更好。
云水木石
2020/03/12
3.3K0
openssl安装与使用
可以通过源码安装也可以apt-get install安装,安装openssl之前先看一下自己是否安装有openssl
全栈程序员站长
2022/07/22
5.5K0
openssl安装与使用
Strongwan 建立证书体系,CA根证书、服务端与各个客户端证书
配置IPSec需要建立 PKI,PKI(公钥基础结构)包括服务器与各个客户端的私钥和证书(公钥)、对服务器和各个客户端证书签名的 CA 证书与密钥(CA 证书与密钥来自根证书颁发机构)。
鳄鱼儿
2024/09/25
3610
【干货 | 原创 】MySQL/MariaDB数据库基于SSL实现主从复制
前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于 MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证
小小科
2018/05/04
8860
【干货 | 原创 】MySQL/MariaDB数据库基于SSL实现主从复制
推荐阅读
相关推荐
GmSSL支持SM2/SM3/SM4/SM9/SSL国产商用密码开源库
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验