CentOS 7 Linux 安装 GmSSL 2.4.4 with OpenSSL 1.1.0库

0x00 为什么要搞这个?

GmSSL是一个开源的密码工具箱,是OpenSSL的国密扩展版,支持国密算法。

现在国内慢慢普及国密算法替代国际算法,国内的环境使用的密码算法更新换代。

这两天要搭建一个支持国密的服务器,正好Github上有国密的开源项目。在安装过程中遇到了很多问题,一开始用Ubuntu 18.04一直出问题,后来改用CentOS 7,发现是自己配置路径的问题,和Linux版本关系不大。现在把自己安装的整个过程记下来,以后没准还能用上。

特别感谢GmSSL的开源作者 guanzhi。
The GmSSL repository on Github: GmSSL
The GmSSL Project: gmssl.org

0x01 为什么不直接按官方文档说明去装?

因为我直接装的时候出问题了啊!作为一个Linux小白,只有不断摸索啊!

当前时间(2019/01/26)的GmSSL版本为 2.4.4,用的openssl版本是1.1.0,用的库是 libcrypto.so.1.1 和 libssl.so.1.1。
但现在openssl的最新版本是 openssl 3,库页都是 libcrypto.so.3 和 libssl.so.3。
所以按作者的默认安装方式安装并不兼容,会出现找不到目录的情况。
除非你对编译什么的很熟了,config 的时候参数都填好了,安装得很顺利,那你可能没必要继续读下去了。。像我这种直接 ./config 和 make 的,不花点时间可搞不好。。。
而且目前最新的 CentOS 7 默认安装的是 openssl 1.0.2, 库版本更低,奇怪的是即使重新 yum install openssl 都安装不了新版本。
不信你自己看看自己的openssl版本:

openssl version

于是就有了下面的一通骚操作。

0x02 我的安装顺序

安装编译工具

安装 OpenSSL 1.1.0g

配置 PATH 和 libraries

安装 GmSSL

上面提过,GmSSL需要有相应版本的库支持,所以按照步骤就这样。我也不知道逻辑不逻辑,反正我这么搞就好使。。。

0x03 如何安装对应版本的OpenSSL

首先安装编译工具。一般CentOS都自带了,但还是要检查一下。下面的命令会安装编译器和一些其他的libraries。在Terminal 运行以下命令:

sudo yum install libtool perl-core zlib-devel -y

然后就可以下OpenSSL了。我这里从Github上下的的 tar 包,没直接git下来因为git下来是openssl 3.0。我们这里用 1.1.0版本。

curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.tar.gz

下载好了解压缩(注意你的下载路径,别搞乱了)。

tar -zxvf OpenSSL_1_1_0g.tar.gz
cd openssl-OpenSSL_1_1_0g

然后配置和编译,注意我这里的配置路径。在配置时,prefix 和 openssldir 设置OpenSSL的路径,shared创建共享libraries,zlib是使用zlib library。配置完成后make编译。编译完成后 make test 一下,看有木有errors,有问题再修。

sudo ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
sudo make
sudo make test

没啥问题了就可以正式安装 libraries。

sudo make install

0x04 配置 PATH 和 libraries

安装完成后,看下OpenSSL版本。

啥??为啥安完还是老版本??

因为老版本也安装在你的系统里啊。路径还没改呢。此外,当OpenSSL更新后用yum安装它时,会直接覆盖编译过的版本,并且需要重新编译,这期间就容易出问题。所以还是手动让系统去使用刚刚编译过的OpenSSL。

按照如下命令建个文件:

sudo vi /etc/profile.d/openssl.sh

把下面的内容贴在这个文件里面:

pathmunge /usr/local/openssl/bin

保存,重启。然后再 openssl version 一下看看版本。。。。

。。。。

。。。

。。

 

我靠,大大的ERROR!没事儿,继续搞:

sudo vi /etc/ld.so.conf.d/openssl-1.1.0g.conf

把下面这段贴进去:

/usr/local/openssl/lib

让linker把新的libraries加进去。然后执行:

sudo ldconfig -v

最后openssl version,看看版本是不是 1.1.0啦?

0x05 安装GmSSL

有了上面的底子,安装GmSSL就比较容易了。

在 Github上 GmSSL 的项目下载项目,配置,编译。prefix 和 openssldir 用上面的,保持一致。挨个运行下面的命令:

git clone https://github.com/guanzhi/GmSSL.git
cd GmSSL
sudo ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
sudo make 
sudo make install

等几分钟就好了。然后看下 gmssl 的版本:

 gmssl version

GmSSL 2.4.4 - OpenSSL 1.1.0d  26 Jan 2019

 

Easy.
 

你可能感兴趣的:(GmSSL)