GMSSL双证书认证C/S(Linux版)

一、下载与安装GMSSL

二、生成证书文件

三、认证通信

对于新手小白,不知道怎么入坑GMSSL学习的可以看。首先需要明白什么是 gmssl,以及怎么初步使用它,初步搞懂双证书以及认证过程,下面我给几个链接方便大家快速找到合适的学习内容(也是我挑选过的了)。
非对称加密算法(双证书需要涉及到)
常用对称、非对称、摘要加密算法介绍
国密SSL协议之双证书体系
GMSSL官方文档
环境:Ubuntu18.0.4

一、下载与安装GMSSL

到这里通过前面几篇文章,我们会对GMSSL有一个初步的了解了,下面直接上手吧!我们直接安装的话后面使用可能会有冲突,因为GmSSL是支持国密算法和标准的OpenSSL的分支,也就是说GmSSL是在OpenSSL的基础上增加的国密算法,Linux上很多软件都依赖于系统中的OpenSSL库,所以在编译安装gmssl时可能会有冲突。下面的安装流程解决了冲突问题。
(1)去GMSS官网下载压缩包:GMSSL-master压缩包
GMSSL双证书认证C/S(Linux版)_第1张图片
(2)将压缩包放到你想放置的目录下,我是直接放在主目录下面进行解压安装的。
GMSSL双证书认证C/S(Linux版)_第2张图片
(3)解压

unzip GmSSL-master.zip

(4)进入解压目录,因为我是解压在主目录下的,所以是这个指令。

cd GmSSL-master/

(5)编译选项,配置安装路径,编译为静态库,解决冲突问题。

./config --prefix=/usr/local/gmssl --openssldir=/usr/local/gmssl no-shared 
//–prefix表示安装路径;no-shared 表示只编译静态库;默认生成64位库

(6)编译与安装,最好在root用户下面执行,否则可能使用的时候会报错。

make //编译

等待编译结束后再执行安装指令:

make install //安装

耐心等待就行。
(7)配置环境变量,在~/.bashrc文件中,添加GmSSL命令行工具路径

vim ~/.bashrc //进入文件进行编辑
export PATH=$PATH:/usr/local/gmssl/bin  //在文件尾部添加,并保存退出
source ~/.bashrc  //文件更改保存后执行这个指令

(8)查看安装版本:(与OpenSSL不冲突)
GMSSL双证书认证C/S(Linux版)_第3张图片

二、生成证书文件

先下载安装TASSL,因为大多都成参考这个项目里的.sh文件来生成双证书的,所以先去下载相关文件放到主目录下面(我是将整个文档都下载下来了)。
TASSL-master下载
GMSSL双证书认证C/S(Linux版)_第4张图片

GMSSL双证书认证C/S(Linux版)_第5张图片
将TASSL-master/Tassl_demo/mk_tls_cert 目录下的SM2certgen.sh这个脚本进行修改,修改如图部分就行:
GMSSL双证书认证C/S(Linux版)_第6张图片

cd TASSL-master/Tassl_demo/mk_tls_cert  //进入文件目录
sh SM2certgen.sh //执行文件,生成证书

GMSSL双证书认证C/S(Linux版)_第7张图片
生成的证书与密钥等相关文件在sm2Certs子目录里:

CA.key.pem和CA.cert.pem分别是CA私钥和CA证书。

CE.cert.pem和CE.key.pem分别是客户端的加密证书和对应的私钥。

CS.cert.pem和CS.key.pem分别是客户端的签名证书和对应的私钥。

SE.cert.pem和SE.key.pem分别是服务器的加密证书和对应的私钥。

SS.cert.pem和SS.key.pem分别是服务器的签名证书和对应的私钥。

三、认证通信

打开两个终端,一个充当服务器端一个充当客户端进行认证通信(这是在linux下的执行代码,windows的执行代码会有略微不同)。
服务器端执行如下代码:

gmssl s_server -accept 44330 -key ./SS.key.pem -cert ./SS.cert.pem  -dkey ./SE.key.pem -dcert ./SE.cert.pem -CAfile ./CA.cert.pem

GMSSL双证书认证C/S(Linux版)_第8张图片

客户端执行如下代码:

gmssl s_client -connect localhost:44330 -key ./CS.key.pem -cert ./CS.cert.pem -CAfile ./CA.cert.pem

GMSSL双证书认证C/S(Linux版)_第9张图片
当客户端也运行成功后,在服务器端会有一个显示:
GMSSL双证书认证C/S(Linux版)_第10张图片
然后就可以发消息进行通信了。

参考文章如下:
(1)https://blog.csdn.net/qq_40153886/article/details/106937556
(2)https://blog.csdn.net/zyhse/article/details/112350363

你可能感兴趣的:(linux,GMSSL,双证书认证,linux,网络安全,网络协议,ssl,ubuntu)