寻求适用于RHEL 6的TLS 1.2版libssl、libcrypto库文件
在RHEL 6上获取支持TLS 1.2的OpenSSL库(静态+动态)
RHEL 6自带的OpenSSL版本(通常为0.9.8e)不支持TLS 1.2,你需要手动编译适配的OpenSSL版本来获取对应的libssl.so、libcrypto.so动态库和.a静态库。以下是具体操作步骤:
1. 安装编译依赖
先安装编译所需的基础工具和依赖:
yum install gcc make perl zlib-devel -y
2. 编译支持TLS 1.2的OpenSSL
推荐选择OpenSSL 1.0.2系列(对RHEL 6兼容性更好,1.1.x系列部分版本可能因glibc版本问题无法正常运行),比如1.0.2zh(1.0.2分支的最后稳定版):
- 解压源码包后进入目录,执行配置命令:
./config --prefix=/usr/local/openssl-tls12 shared zlib
--prefix指定自定义安装路径(避免覆盖系统默认库),shared参数会同时生成动态库和静态库,zlib启用zlib压缩支持。
- 编译并安装:
make -j$(nproc) make install
3. 获取目标库文件
安装完成后,目标库文件会存放在你指定的prefix目录下:
- 动态库:
/usr/local/openssl-tls12/lib/libssl.so、/usr/local/openssl-tls12/lib/libcrypto.so - 静态库:
/usr/local/openssl-tls12/lib/libssl.a、/usr/local/openssl-tls12/lib/libcrypto.a
4. 应用编译链接注意事项
- 编译你的C++应用时,需要指定新OpenSSL的头文件路径:
-I/usr/local/openssl-tls12/include - 链接动态库时,指定库路径和库名:
-L/usr/local/openssl-tls12/lib -lssl -lcrypto;如果是静态链接,直接指定静态库的绝对路径更稳妥,避免链接到系统默认库:/usr/local/openssl-tls12/lib/libssl.a /usr/local/openssl-tls12/lib/libcrypto.a - 运行应用时,如果使用动态库,需要确保系统能找到新库,可以通过
LD_LIBRARY_PATH临时指定:export LD_LIBRARY_PATH=/usr/local/openssl-tls12/lib:$LD_LIBRARY_PATH,或者修改/etc/ld.so.conf.d添加路径后执行ldconfig。
关键提示
绝对不要直接覆盖系统默认的OpenSSL库,否则会导致yum、ssh等系统核心工具依赖失效,引发系统问题。
内容的提问来源于stack exchange,提问作者Sunil Shukla
相关产品推荐
相关产品推荐

