openssl配置
虚谷数据库的运行依赖于openssl,请在安装部署前配置正确版本的openssl。
版本需求
linux
CPU架构 | 发行版 | 兼容版本 | 推荐版本 |
---|---|---|---|
X86 | RedHat 7.9 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
X86 | RedHat 8.1 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
X86 | Kylin V10-SP2 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
X86 | Kylin V10-SP3 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
ARM | centos 7.9 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
ARM | centos 8.5 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
ARM | Kylin V10-SP2 | 1.1.0 ~ 1.1.1w | 1.1.1 ~ 1.1.1w |
windows
windows平台下,虚谷数据库附带了openssl的依赖库,如果平台的openssl不符合要求,可下载依赖库并使用。
说明:
- openssl 1.1.0到1.1.1w的任意版本均可,openssl 1.1.1* 是LTS版本,推荐优先使用。
- openssl 1.1.0以下版本和openssl 3.0.0以上版本,均无法使用。
安装openssl
openssl发行包安装
请尝试从如下网站中下载并安装所需版本的openssl发行包: https://pkgs.org/search/?q=openssl
https://rpmfind.net/linux/rpm2html/search.php?query=openssl
https://ftp.debian.org/debian/pool/main/o/openssl/
https://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/?C=M;O=D
如未能找到所需的发行包,可尝试openssl源码安装,源码安装可根据需求更灵活的选择openssl版本。
openssl源码安装
- 从https://openssl-library.org/source/old/index.html下载所需版本的openssl源码文件,格式为“tar.gz”。
- 执行命令
tar -zxvf xxx.tar.gz
,解压openssl源码文件。 其中xxx
为openssl版本号,例如:openssl-1.1.0b。 - 执行命令
cd openssl-1.1.0b
,进入源码目录。 - 执行命令
./config --prefix=<your_path>
,配置安装路径。<your_path>
为自定义的安装路径。过程中可能会出现一些问题,但因为openssl依赖不多,编译环境要求也并不高,因此根据报错在搜索引擎中搜索,基本可以顺利解决。 - 执行
make && make install
,编译并安装openssl。 也可以分开执行,先make
,结束后在当前路径下可以看见编译产物,如libcrypto.a
、libcrypto.so
等,再make install
,结束后--prefix
的路径下可以看见安装后的内容,主要包含bin、include、lib三个目录,lib目录下的内容主要包含:
`libcrypto.so`, `libcrypto.so.1.1`, `libcrypto.a`, `libssl.so`, `libssl.so.1.1`, `libssl.a`
- 配置环境变量,目前虚谷数据库主要依赖libcrypto.so.1.1动态库,因此根据当前操作系统的环境变量配置方式,可以考虑以下3种:
a. 将安装目录下的lib目录,配置入LD_LIBRARY_PATH环境变量。
b. 将安装目录下的lib目录中的libcrypto.so.1.1拷贝至环境中现有的环境变量路径下,如/user/lib64等。
c. 配置ld.so.conf.d。
注意:
以上方式均可,但要重点注意,环境上原本可能存在自带的openssl,尽量避免对原本的环境造成影响。
验证openssl
版本
使用以下四个版本的openssl进行测试,均可以正常链接、运行。
- openssl-1.1.0b
- openssl-1.1.1
- openssl-1.1.1f
- openssl-1.1.1w
动态链接
查看数据库依赖包, 可以看到正确链接到环境中的libcrypto.so.1.1。
shell
$ ldd ./xugu_linux_x86_64_20250327
linux-vdso.so.1 (0x00007ffe160a8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007feb24299000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007feb24294000)
libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007feb2428f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007feb2428a000)
libcrypto.so.1.1 => /lib/libcrypto.so.1.1 (0x00007feb23fa2000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007feb23d74000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007feb23c8d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007feb23c6d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feb23a44000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb242a7000)
功能
执行dbms_crypto包中的加解密、hash、随机数等功能,功能可以正确执行。
环境升级
在centos 7.9环境中(默认openssl版本为openssl 1.0.2k)启动虚谷数据库,报错:
error while loading shared libraries: libcrypto.so.1.1: can not open shared object file: No such file or directory
将openssl 1.1.1k版本的动态库复制到/usr/lib64/目录下,再次启动,可以正常链接到动态库。