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

环境 说明
VirtualBox 7.0 Oracle VM虚拟机,主机系统是64位windows10 21H2 家庭中文版。
CentOS 7.9
GmSSL 2.5.4 建议该版本
make 3.82 CentOS7.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+版本。

下载后上传至/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也重复操作,执行过程效果截图,如下:

最后再一次执行查看连接,结果如下:

3.3-2 安装成功

查看gmssl版本

gmssl version

效果如下图所示:

接下来大家就可以按照官网文档或者搜索资料,进行证书生成了!!!

祝各位一切顺利!

CentOS7安装GmSSL过程记录相关推荐

  1. CentOS7安装向日葵过程记录

    提到Linux的远程控制,大家可能都想到了VNC了,实际过程中我发现vnc网络不好时挺卡的.我突然就有个想法,在vnc中开一个向日葵或者 TeamView是否就可以不卡的流畅图形化远程呢? 目前的结论 ...

  2. 源码编译安装git过程记录

    工作上需要使用一台装有银河麒麟的操作系统的计算机.这台计算机cpu是arm架构的并且没有预装git.下面介绍我如何在这样一台预装软件较少的计算机上用源码安装git 目录 1 源码安装autoconf ...

  3. Geomagic Touch(LAN口版本) 环境配置及驱动安装【过程记录】

    Geomagic Touch(LAN口版本) 环境配置及驱动安装过程记录 进入官方链接,在该页面下可以看到有 OpenHaptics 环境配置文件.touch 驱动文件以及驱动安装教程 1. Open ...

  4. centos7.6安装Oracle11g过程记录(上)

    Last login: Fri Mar 1 06:44:27 2019 from 10.0.0.3 -------------关闭防火墙和selinux [root@vmhzporacle ~]# c ...

  5. 安装虚拟机Centos系统并安装Docker过程记录

    前言 本文主要介绍下 1.Mac系统安装虚拟机Centos7 2.Centos安装docker.docker-compose的过程 缘何说起这个话题,是因为之前一篇文章 遗留的问题 轻量级日志系统Lo ...

  6. 宏碁笔记本安装黑苹果过程记录

    之前用这台笔记本装过Ubuntu,装过Deepin,今天继续折腾装一个黑苹果. 首先先做一个启动盘.我用的工具是Rufus,一款特别小众的软件,不过还是挺好用的. image.png 然后就是写入镜像 ...

  7. 虚拟机安装Ubuntu过程记录

    1.WMware中新建虚拟机 2.选择安装程序光盘镜像iso 3.个性化Linux(全名.用户名.密码等) 4.指定虚拟机名称以及安装位置 5.指定虚拟机磁盘容量大小 6.完成虚拟机配置 安装过程.. ...

  8. 2017最新nginx+keepalived+centos7安装配置过程

    一. 地址规划 nginx1-10.1.1.2 nginx2-10.1.1.3 vip-10.1.1.4 修改两台主机名:hostnamectl set-hostname nginx1 hostnam ...

  9. centos7 安装 vsftpd 过程

    测试环境:win7 安装 VMware workstation12 , VM里面安装 centos7 1.安装vsftp yum install vsftp 2.启动vsftp service vsf ...

最新文章

  1. 2022-2028年中国辉石行业市场全景调查及发展前景分析报告
  2. ​GEB:焦硕等发表生态位的系统发育保守性决定土壤古菌地理格局
  3. php展开收缩bom表_WordPress实现文章内容收缩和展开功能
  4. 【yolo】ubuntu18.04 yolo打开摄像头实时检测框目标 转化pth文件为onnx
  5. hdu 5071 Chat(模拟|Splay)
  6. -bash: mysql_upgrade: command not found
  7. 如何保证Session值不丢失
  8. 记录一次由于流的read(byte[3 * 1024], 0, len); 读取不足定义的长度,引发的线上bug
  9. 高德地图与百度地图的经纬度偏差纠正
  10. element-admin/若依主题风格设计
  11. 全球及中国汽车空气悬架再制造行业发展动向预测与投资战略规划建议报告2022年版
  12. 【C语言】输出百分号“%”
  13. Cybersource支付流程设计
  14. 在vue.js中实现a标签href tel的打电话功能
  15. 语音识别(ASR)论文优选:端到端ASR综述Recent Advances in End-to-End Automatic Speech Recognition
  16. 35个Photoshop最强己付费扩展面板+自动修图PS插件
  17. 你听说过FOC吗?FOC的原理是什么?
  18. 基于STM32震动感应灯
  19. [Jzoj] 2198.简单数迷
  20. 【DataBase】数据库连接池

热门文章

  1. python 通信系统仿真_深入浅出通信原理连载22-40(Python代码版)
  2. 颜料增效剂市场现状及未来发展趋势
  3. 微型计算机原理及应用背景,微型机原理及应用
  4. 个人官网导航主页API网站源码
  5. 针式打印机无法打印SMARTFORMS中图片
  6. ROS工程师等级证书(初级)报名要求
  7. 文件与base64格式转换
  8. 定期存款计算器_定期存款预测
  9. 编译原理--中间代码生成
  10. Android模拟7段LED数码管文字显示,光标定位