GmSSL安装与国密双证制作

这篇具有很好参考价值的文章主要介绍了GmSSL安装与国密双证制作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用openssl时,发现不支持国密协议,因此找了支持的GmSSL,自己编译安装。

国密GmSSL安装

工具GmSSL 2.5.4 - OpenSSL 1.1.0d

环境Ubuntu 20.04.1

 

Gmssl安装

方法一:进入https://github.com/guanzhi/GmSSL/tree/master下载源代码(develop分支为3.0分支

gmssl ubuntu,ssl,linux,服务器,ubuntu

方法二:压缩包已上传到附件,可以直接下载:GmSSL-master.zip

 

zip文件上传到linux虚拟机的某路径(如/zlm/

unzip GmSSL-master.zip

进入源码目录

./config

报错"glob" is not exported by the File::Glob module,将configure文件中 use if $^O ne "VMS", 'File::Glob' => qw/glob/; ,改为use if $^O ne "VMS", 'File::Glob' => qw/:glob/; 再次执行。(/zlm/GmSSL-master/configure

报错Program fragment delivered error ``"glob" is not exported by the File::Glob module,进入test/build.info,查找File::Glob修改内容同上。

make

sudo make install

报错:gmssl: symbol lookup error: gmssl: undefined symbol: BIO_debug_callback, version OPENSSL_1_1_0d,需要设置环境变量:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

gmssl version 查看版本号

制作国密双证

1.创建目录

mkdir -p ./demoCA ./demoCA/newcerts ./demoCA/private #创建目录
touch ./demoCA/index.txt #创建文件 openSSL定义的已签发证书的文本数据库文件,这个文件通常在初始化的时候是空的)
chmod 777 ./demoCA/private
echo 01 > ./demoCA/serial #serial
:证书签发时使用的序列号参考文件,该文件的序列号是以16进制格式进行存放的,该文件必须提供并且包含一个有效的序列号。
echo 01 > ./demoCA/crlnumbe #输入序列号为01

2.制作根证书

gmssl ecparam -genkey -name sm2p256v1 -text -out ./demoCA/private/cakey.pem #生成CA根密钥

gmssl req -new -key ./demoCA/private/cakey.pem -out ./demoCA/careq.pem #生成CA证书请求

gmssl x509 -req -days 3650 -sm3 -in ./demoCA/careq.pem -signkey ./demoCA/private/cakey.pem -out ./demoCA/ cacert.pem #生成根证书cacert.crt

3.制作证书

gmssl ecparam -genkey -name sm2p256v1 -text -out demoCA/sm2_sign1.key #生成密钥

gmssl req -new -key demoCA/sm2_sign1.key -out demoCA/sm2_sign1.req #生成证书请求

修改配置文件openssl.cnf“[ usr_cert ]”中的属性值 (路径为/zlm/GmSSL-master/apps/openssl.cnfvim中使用/可以快速定位)

# This is typical in keyUsage for a client certificate.

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

# keyUsage = digitalSignature

# keyUsage = keyEncipherment

key usage扩展为Digital Signature, Non-Repudiation, Key Encipherment (e0),证书可以用来加密和签名。

key usage扩展为Digital Signature没有加密功能,只能用来签名。

key usage扩展为keyEncipherment没有签名功能,只能用来加密。

gmssl ca -md sm3 -in demoCA/sm2_sign1.req -out demoCA/sm2_enc1.crt -days 3650 -config GmSSL-master/apps/openssl.cnf #签发证书,生成sm2_enc1.crt 

按照上述修改属性值的方式,修改key usage后再签发一次

gmssl ca -md sm3 -in demoCA/sm2_sign1.req -out demoCA/sm2_sign1.crt -days 3650 -config apps/openssl.cnf #签发证书,生成sm2_sign1.crt 

报错failed to update database TXT_DB error number 2:删除demoCA下的index.txt,并再touch下:rm index.txttouch index.txt

gmssl pkcs12 -export -out demoCA/sm2_sign1.pfx -inkey demoCA/sm2_sign1.key -in demoCA/sm2_sign1.crt #x509证书转换为pkcs12格式的证书

chmod 777 demoCA/sm2_sign1.pfx #修改权限后可以导出文章来源地址https://www.toymoban.com/news/detail-774621.html

到了这里,关于GmSSL安装与国密双证制作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 国密算法:利用python进行sm2非对称算法的实现,国密算法库gmssl的使用

    我们继续来进行国密算法的演示。 本篇演示sm2非对称算法的实现,国密算法库gmssl的使用。 sm2: 即椭圆曲线公钥密码算法,是由国家密码管理局发布的; 非对称加密算法,即有一对不一样的密钥:公钥和私钥,公钥用来加密,私钥用来解密; 公钥和私钥:公钥,可以公开。

    2024年02月06日
    浏览(61)
  • GMSSL 3.0生成自签名证书

    可以参考如下命令 gmssl sm2keygen -pass 123456 -out cakey.pem -pubout capubkey.pem gmssl certgen -C CN -ST HN -L CS -O XXX -OU dev -CN CA -days 3650 -key cakey.pem -key_usage keyCertSign -pass 123456 -out ca.crt gmssl certparse -in ca.crt ###server sign gmssl sm2keygen -pass 123456 -out s_signkey.pem -pubout s_signpubkey.pem gmssl reqgen -C CN -ST HN

    2024年02月09日
    浏览(39)
  • 死磕GMSSL通信-java/Netty系列(三)

    死磕GMSSL通信-java/Netty系列(三) 接着上次的博客继续完善,上次其实只是客户端的改造,这次把服务端的也补上,netty集成GMSSL实现GMServer 1、netty_tcnative c代码改造,这个是客户端和服务端都需要都该的地方 sslcontext.c文件 TCN_IMPLEMENT_CALL(jlong, SSLContext, make)(TCN_STDARGS, jint protoc

    2024年04月26日
    浏览(28)
  • 详解gmssl和tls1.2握手流程分析及接口实现

    通过阅读openssl源码具体分析ssl握手中的报文交互流程,包括发送和处理每个报文所做的主要事情。同时分析ssl协议中的一些主要问题,包括tls和gmssl的区别、单向认证和双向认证、两种会话复用方式对比,调用openssl接口实现ssl客户端和服务端之间的通信。 注意: TLS1.2中密钥

    2024年02月10日
    浏览(37)
  • 基于GMSSL实现的sm2加解密在vscode实现(C++)(自用)

    原文地址:https://blog.csdn.net/hacker_lpy/article/details/124211114 原文改进方案地址:https://blog.csdn.net/canlynetsky/article/details/131212028 本人最近刚刚开始学习Linux下的C++开发,不太习惯命令行编译程序,听说vscode挺好用,于是开始尝试使用vscode来编写程序,以下记录自己在跑通原文案例时

    2024年01月17日
    浏览(36)
  • 通过openssl实现自签国密双证书详细教程

    openssl 1.1.1+ 版本增加了对SM2 的支持,所以我们就能直接使用这些版本的opsnssl 生成 SM2的公私钥对 BggqgRzPVQGCLQ==是椭圆曲线的关键参数,对应secp256k1标识,用secp256k1生成私钥每次私钥是不同的,但EC PARAMETERS都是相同的。 生成的是非压缩格式的公钥。 输入国家、城市、公司名称

    2024年02月04日
    浏览(51)
  • 安装ubuntu 18.04 系统(1)——制作系统安装U盘

    https://rufus.ie/zh/ 下载该软件,准备制作启动盘 下载自己想要的镜像,http://mirrors.163.com/ubuntu-releases/18.04/, 我选择的是ubuntu-18.04.6-live-server-amd64.iso 因为,科研写程序使用,不需要桌面版本。 开始制作启动U盘。 step 1: 清空自己的U盘中的内容,点击选择按钮,选择一个自己已经

    2024年02月14日
    浏览(51)
  • 【系统安装】ubuntu20.04启动盘制作,正经教程,小白安装教程,百分百成功安装

    1.所需材料: 64GBU盘(其实8g和16g也可以) 2.制作U盘启动盘 使用windows制作ubuntu 20.04启动盘 1)下载制作工具:Rufus:Rufus - 轻松创建 USB 启动盘 2)插入用来做启动盘的U盘 3)打开Rufus,选择镜像文件,并开始,注意target system选择UEFI 4)写入过程大概会持续4~5分钟 3.启动盘制作

    2024年02月05日
    浏览(59)
  • U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装

    U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装 准备条件 准备一个U盘,建议容量至少为8GB,以便存放系统镜像文件 一台已经安装好操作系统的计算机,用于制作U盘启动盘 Ubuntu和CentOS的Linux ISO镜像文件。可以从官方网站或相关资源网站下载 镜像下载 centos官网下载:htt

    2024年04月15日
    浏览(71)
  • 【U盘制作ubuntu22.04启动盘并为电脑安装系统记录】

    下载地址: 官方下载地址 https://www.ubuntu.com/download 中科大源镜像站 http://mirrors.ustc.edu.cn/ubuntu-releases/ 阿里云开源镜像站 http://mirrors.aliyun.com/ubuntu-releases/ 兰州大学开源镜像站 http://mirror.lzu.edu.cn/ubuntu-releases/ 北京理工大学开源 http://mirror.bit.edu.cn/ubuntu-releases/ 浙江大学开源镜像

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包