Ubuntu配置gmssl和openssl,且均使用动态库,使用时根据需要进行动态切换

前情提要

  • openssl和gmssl如果想要共存,只能一个是动态库,一个是静态库
  • 配置openssl和gmssl无特定的编译顺序要求
  • openssl3.x版本是未来趋势,openssl1.1.x等版本只是适用于基础软件包,后期将会删除
  • 配置文件
  • ubuntu一般使用 # 作为注释
  • 使用配置文件之后,就不需要使用软连接实现可执行文件的调用

下载编译Opensll和Gmssl

通用模板

  • sudo ./config --prefix=/usr/local/XXX --openssldir=/usr/local/XXX
    • 注意事项:删除no-shared,其用于生成静态库
  • sudo make
  • sudo make install

变量说明

 openssl

  • bin
    • /usr/local/openssl/bin
  • lib
    • /usr/local/openssl/lib64

gmssl

  • bin
    • /usr/local/gmssl/bin
  • lib
    • /usr/local/gmssl/lib

配置路径

  • openssl和gmssl不可以共存,使用时需要使用 # 进行注释,实现动态切换
  • 切换后 使用命令 source  /etc/profile实现动态切换
  • openssl比较特殊,因为当前已经存在了openssl1.1.1版本,如果注释掉gmssl,开启openssl,使用openssl version显示的是openssl1.1.1版本,而不是用户自己编译安装的openssl3.0.4,解决办法如下,删除旧有的链接,重新创建新的软连接
    •  sudo mv /usr/bin/openssl /usr/bin/openssl.old    //将旧版本的openssl进行备份
      sudo ln -s /usr/local/bin/openssl /usr/bin/openssl    //将新版本的openssl进行软链接
  • 配置文件只需要制定bin(可执行文件)和lib(动态库),不需要指定头文件,头文件在编译器内部指定(CMakeLists.txt)
  • 参考链接 在ubuntu环境下执行openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl ubuntu
  • 例子
    • # 指定头文件搜索策略
    • include_directories(/usr/local/gmssl/include)

## openssl和gmssl 动态库不能同时使用,需要注释其中一个,且使用 source /etc/profile 更新配置文件
## gmssl env
export PATH=$PATH:/usr/local/gmssl/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmssl/lib

## openssl env
# export PATH=$PATH:/usr/local/openssl/bin
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib64


版权声明:本文为CHYabc123456hh原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。