在Linux下安装GmSSL

本文属于《GmSSL国密加密算法库使用系列教程》之一,欢迎查看其它文章。

在Linux下安装GmSSL

  • 一、关于GmSSL
  • 二、解决与系统OpenSSL冲突的问题
  • 三、GmSSL源码准备
  • 四、编译与安装GmSSL
    • 1、解压并进入目录
    • 2、编译选项
    • 3、编译
    • 4、安装
    • 5、配置环境变量

一、关于GmSSL

GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。

GmSSL项目由北京大学关志副研究员的密码学研究组开发维护,项目源码托管于GitHub。自2014年发布以来,GmSSL已经在多个项目和产品中获得部署与应用,并获得2015年度“一铭杯”中国Linux软件大赛二等奖(年度最高奖项)与开源中国密码类推荐项目。GmSSL项目的核心目标是通过开源的密码技术推动国内网络空间安全建设。

以上内容摘抄自GmSSL官网:http://gmssl.org/

大家都知道OpenSSL,主要是提供国际加密算法库。但是在最新的OpenSSL 1.1.1以上版本,已经对国密算法提供了支持。

OpenSSL、GmSSL这俩提供的国密算法库,去看了下代码,代码实现是不一样的,属于条条大路通罗马。

二、解决与系统OpenSSL冲突的问题

GmSSL是支持国密算法和标准的OpenSSL分支,也就是说GmSSL是在OpenSSL代码基础上添加的国密算法。

因此为了兼容OpenSSL,GmSSL编译后生成的so文件名称与OpenSSL一致,都是libcrypto.so。

可能存在的问题:

Linux上很多软件都依赖于系统中的OpenSSL库。若你编译安装的GmSSL版本,其基于的OpenSSL分支版本,与系统中的OpenSSL版本不一致,便会产生冲突,很容易导致这些软件不可用。

最简单有效的办法:将GmSSL编译为静态库。

GmSSL命令行工具,以及我们基于该静态库开发的程序,直接内部就集成了GmSSL的二进制码,不需要去查找库了,也就不会与系统中OpenSSL产生冲突。

在安装GmSSL时,安装到指定的目录下,如/usr/local/gmssl,与系统中OpenSSL路径保持独立。

这样,即从文件路径和运行时,两方面保证了GmSSL与OpenSSL不会冲突,并保持使用上的相互独立性。这的确是最完美的解决办法。

三、GmSSL源码准备

下载GmSSL源码:https://github.com/guanzhi/GmSSL

在这里插入图片描述

四、编译与安装GmSSL

以下测试环境为Ubuntu 16.04。

1、解压并进入目录

解压源码

unzip GmSSL-master.zip

进入源码目录

cd GmSSL-master/

2、编译选项

配置安装路径,编译为静态库

./config --prefix=/usr/local/gmssl --openssldir=/usr/local/gmssl no-shared

注:–prefix表示安装路径;no-shared 表示只编译静态库;默认生成64位库。
此条命令若出错,可参考https://blog.csdn.net/weixin_43716504/article/details/126095234,修改Configure、test/build.info文件后,即可解决。

3、编译

make

4、安装

make install

若报错:

Cannot create directory /usr/local/gmssl: No such file or directory

是因为当前用户无权限对该路径进行写入。

再次执行如下,即可解决。

sudo make install

GmSSL安装目录如下:

在Linux下安装GmSSL_第1张图片

5、配置环境变量

在~/.bashrc文件中,添加GmSSL命令行工具路径。

vim ~/.bashrc

在文件末尾追加如下内容:

export PATH=$PATH:/usr/local/gmssl/bin

然后执行

source ~/.bashrc

输入命令,查看GmSSL版本

gmssl version -a

在这里插入图片描述

在这里插入图片描述

并且与OpenSSL不冲突,至此,GmSSL安装完毕。



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

你可能感兴趣的:(GmSSL,linux下安装GmSSL)