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

前情提要

  • openssl和gmssl如果想要共存,只能一个是动态库,一个是静态库
  • 配置openssl和gmssl无特定的编译顺序要求
  • openssl3.x版本是未来趋势,openssl1.1.x等版本只是适用于基础软件包,后期将会删除
  • 配置文件
    • /etc/ld.so.conf文件只用于配置动态库,一般最好不用动他
    • 在ubuntu环境下执行openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl ubuntu
    • 例子说明:
      • echo "/usr/local/lib" >> ld.so.conf    //将openssl的安装路径加入配置中
      • ldconfig  //重新加载配置
    • bashrc只针对当前用户,一般也不采取这种方式
    • /etc/profile 对此文件的修改和配置对任何用户均生效,一般采用此种方式
  • ubuntu一般使用 # 作为注释
  • 使用配置文件之后,就不需要使用软连接实现可执行文件的调用

下载编译Opensll和Gmssl

  • 在ubuntu环境下执行openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl ubuntu
  • Ubuntu安装GmSSL库适用于ubuntu18和ubuntu20版本_MY CUP OF TEA的博客-CSDN博客_ubuntu安装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

你可能感兴趣的:(密码学,ubuntu,linux,服务器)