生成HA证书时报错“symbol xxx not defined in file libcrypto.so.1.1”
用户问题
更换HA证书时,执行sh ${OMS_RUN_PATH}/workspace/ha/module/hacom/script/gen-cert.sh --root-ca --country=CN --state=state --city=city --company=company --organize=organize --common-name=commonname --email=集群用户邮箱命令在主管理节点“${OMS_RUN_PATH}/workspace0/ha/local/cert”目录生成“root-ca.crt”和“root-ca.pem”时,发生以下报错:
openssl: relocation error: openssl: symbol BIO_new_dgram_sctp version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time referencecreate server private key failed.
原因分析
- 用户可能修改了openssl不是系统默认的/usr/bin/openssl。
- 动态库依赖libcrypto.so.1.1无法找到。
- 如果集群为3.2.0及之前版本,可能在执行操作前执行了配置环境变量的命令(例如source bigdata_env),或修改了环境变量。3.2.0之后版本已修复该问题。
处理步骤
- 以omm用户通过主管理节点IP登录主管理节点。
- 执行以下命令查看执行结果是否为“/usr/bin/openssl”。如果不是请修改openssl为系统默认的/usr/bin/openssl。
which openssl
- 执行以下命令查看动态库依赖。
ldd /usr/bin/openssl
例如执行后结果如下:
[omm@xxx ~]$ ldd /usr/bin/openssl linux-vdso.so.1 (0x0000ffffaf016000) libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x0000ffffaee7a000) libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x0000ffffaebc2000) libz.so.1 => /usr/lib64/libz.so.1 (0x0000ffffaeb91000) libdl.so.2 => /usr/lib64/libdl.so.2 (0x0000ffffaeb70000) libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x0000ffffaeb3b000) libc.so.6 => /usr/lib64/libc.so.6 (0x0000ffffae9c5000) /lib/ld-linux-aarch64.so.1 (0x0000ffffaefe8000)
查看执行结果中libcrypto.so.1.1的指向是否有值,如果为not found请执行以下命令加载。
echo $LD_LIBRARY_PATH
- 查看系统库环境变量里是否加载了非系统的openssl相关的库。如果是,请修改为系统的openssl相关的库。
- 如果仍旧无法解决,请联系支持人员。