避免踩坑系列!关于GmSSL与OpenSSL的兼容安装

1. 遇到的问题

项目上需要用到SM4、SM2等国密算法,因此需要在Ubuntu18.04上安装GmSSL库。

然而笔者在第一次以动态库的形式对GmSSL进行编译与安装,踩了大坑! GmSSL以动态库的形式进行编译时,同时会生成openssl.so的动态库文件;该生成的openssl.so会与系统自己的openssl.so动态库产生冲突。openssl.so是操作系统所依赖的重要库文件,包括联网等活动都会受其影响。笔者的这次安装约等于将整个系统整崩了。。。


2 . 解决方法

以静态库的形式对GmSSL进行编译与安装,解决与系统OpenSSL的兼容问题。

具体步骤:

1)GmSSL下载

2)unzip master.zip

3)cd GmSSL-master/

4)./config --prefix=/usr/local/gmssl --openssldir=/usr/local/gmssl no-shared    注:--prefix表示安装路径;no-shared 表示只编译静态库

5)make & make install

6)sudo vi /etc/profile    在文件末尾追加  export PATH="$PATH:/usr/local/gmssl/bin"

7)source /etc/profile

8)分别查看系统OpenSSL与安装的GmSSL的版本信息,可以看到二者是兼容的

9)应用程序使用GmSSL库进行编译的方法:gcc -o sm4_serv sm4_serv.c -I/usr/local/gmssl/include -L/usr/local/gmssl/lib -lcrypto -lssl -ldl      注:末尾的-ldl必须要加上。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从一个全新的centos7虚拟机到手,走一个升级openssh&openssl的流程 更新一下: yum upda...
    styxx阅读 6,064评论 0 0
  • 最近公司项目需要用到sm2的加签功能,IOS方面的实现找了很久也没找到,最后用了GmSSL来实现,GMSSL里面有...
    BetterG阅读 3,666评论 3 5
  • 公司项目需要用到sm2的加签功能,iOS方面的实现找了很久也没找到,最后用了GmSSL来实现,GMSSL里面有基于...
    北极点阅读 1,708评论 1 0
  • 最近搞了下sm2,防止自己忘记,记录下: 官方地址:Gmssl官网 官方编译文档中,介绍了怎么编译arm64的静态...
    2fca65ed717b阅读 3,210评论 7 3
  • 写在前面 安装最新版的OpenSSL——也就是1.1.1a版本的原因是,最近的项目需要用到国密算法,需要在代码中调...
    正居江陵阅读 2,186评论 0 1