CentOS7安装GmSSL过程记录
创始人
2024-03-05 17:33:44
0

近期因为项目需要上区块链,在集成过程中证书选择了国密SM2,于是开启了入坑之旅,由于整个过程反复多次,我的记录也可能存在遗漏,只能尽力记录,这也是我为什么熬夜也要写下这篇记录!

环境说明
VirtualBox 7.0Oracle VM虚拟机,主机系统是64位windows10 21H2 家庭中文版。
CentOS 7.9
GmSSL 2.5.4建议该版本
make 3.82CentOS7.9系统自带
GCC 4.8.5
perl 5.36.0官方稳定版,不是最新版本。

写在开始

我们一般都喜欢官方网站去下载安装包并查看相关资料进行操作,但是目前 GmSSL官网 比较混乱,主要体现在提供的操作方法与版本混乱,给新人造成困惑。

1 GmSSL v2安装包

建议大家下载 GmSSL2.5.4 版本进行安装,主要是搜索资料基本都是这个版本的,包括官网文档的快速上手以及编译安装过程都是针对该版本的。注意,目前官网快速上手上挂的zip下载GmSSL-master.zip是最新稳定版3.0.0,但是该版本从目录结构、编译安装和gmssl命令都与V2版本有很大区别,新版本编译安装采用的是cmake方式,根目录下有CMakeLists文件,执行编译报错后科学搜索不到太多相关信息,可能还是用V2版本人员较多。
如下图所示官方github上master分支是3.0版本,选择GmSSL v2分支就是2.0+版本。
GmSSL v2版本下载位置
下载后上传至/usr/local/并解压。

2 依赖环境准备

2.1 gcc

查看是否安装

gcc -v

安装

yum install gcc gcc-c++

2.2 openssl

查看是否安装

openssl version

安装

yum install  -y openssl  openssl-devel

3 安装GmSSL

按照 官方资料 进行操作,接下来就是报错与修复的过程了。
官方文档截图

3.1 ./config

进入之前下载并解压的GmSSL v2根目录

cd /usr/local/GmSSL-GmSSL-v2

执行./config

./config

这个时候可能就会报错提示

"glob" is not exported by the File::Glob module

那么,找到安装根目录下的Configure文件(18行)和./test/build.info文件(339行),如下:

use if $^O ne "VMS", 'File::Glob' => qw/glob/;

调整在" qw/ “后面加分号” :",如下:

use if $^O ne "VMS", 'File::Glob' => qw/:glob/;

3.2-1 make

这一步基本没遇到过问题。

make

3.2-2 make test

这一步可能又会报和3.1一样的错误,只是不同的文件,位于./test/run_tests.pl文件(19行),按照3.1中方法修复即可。修复后,再次执行可能还会有报错,但是可以先忽略继续向下执行 3.2-3 。

make test

3.2-3 sudo make install

sudo make install

执行完毕后,可能会报错,如下:

install ./doc/apps/CA.pl.pod -> /usr/local/share/man/man1/CA.pl.1
/bin/sh: line 4: pod2man: command not found
make: *** [install_man_docs] Error 1

暂时忽略,只是一个文档错误。

3.3 完成安装

查看gmssl是否安装成功

gmssl version

可能会报错,如下

gmssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

这是因为某些文件连接没有建立成功。

3.3-1 查看相关连接

ldd /usr/local/bin/gmssl

结果发现两个文件未找到(not found),如下:

	linux-vdso.so.1 =>  (0x00007ffda9fbd000)libssl.so.1.1 => not foundlibcrypto.so.1.1 => not foundlibdl.so.2 => /lib64/libdl.so.2 (0x00007fab91d04000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fab91ae8000)libc.so.6 => /lib64/libc.so.6 (0x00007fab9171a000)/lib64/ld-linux-x86-64.so.2 (0x00007fab91f08000)

先通过find命令找到这两个文件安装位置。

find / -name libssl.so.1.1

然后执行连接操作。

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

另一个文件libcrypto.so.1.1也重复操作,执行过程效果截图,如下:
执行效果
最后再一次执行查看连接,结果如下:

执行效果2

3.3-2 安装成功

查看gmssl版本

gmssl version

效果如下图所示:
安装成功
接下来大家就可以按照官网文档或者搜索资料,进行证书生成了!!!

祝各位一切顺利!

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...