本文介绍: 报错…/libssl.so.1.1: version `OPENSSL_1_1_1′ not found (required by …)报错…/libcrypto.so.1.1: version `OPENSSL_1_1_1′ not found (required by …)

问题分析

今天部署国密nginx安全认证通道时,遇到这个问题,在这里梳理一下整体思路。以下为个人理解,欢迎指正讨论

这种报错大致分为两种:一类是required by openssl一类是required by mysql/nginx/其他应用命令

回归报错语句本身,分析走在实践前面

从根本来说,这个问题LIBSSL.SO.1.1库缺少`OPENSSL_1_1_1k’ 这个版本

可能有以下两个原因造成库缺少版本

①LIBSSL.SO.1.1文件正确文件没有该版本。
②LIBSSL.SO.1.1文件出错,可能是坏文件

判断具体是哪个原因

//执行以下命令
//查看openssl版本
#openssl version
//搜索 libssl.so.1.1 动态so库里有没有OPENSSL_1_(原有版本)
#objdumptT libssl.so.1.1 |grep OPENSSL_1_

如果库里能找到原有版本,库文件没有损坏,原因①;
库里找不到原有版本,库文件损坏,原因②。
第一类报错”required by openssl“更多的是原因
第二类报错”required by nginx/mysql/…“更多的是原因②


解决思路:

原因一:

文件没有损坏,只是缺少所需版本,一般升级openssl到库缺失的版本可以解决,具体流程网上有很多,但是具体情况要具体分析,切记不要生搬硬套,可以多看几篇文章,了解每一步是在做什么,思考一下自己怎样做。

生搬硬套吃大亏(手比脑快血泪史)

升级openssl时候需要重写连接,务必要先备份

谨记先备份删除

原因二:

查找正确动态so文件

//执行命令查找所有动态so库文件
#find / –name libssl.so.1.1
//在查询结果中找到没有出错的动态so库文件
比如 /usr/lib/x86_64-linuxgnu/libssl.so.1.1
或者是其他符合生产环境动态so库文件,我用tassl生成的。

备份坏文件,替换成生产环境需要的文件:

哪个文件是坏文件就替换哪个

解决.../libssl.so.1.1: version 'OPENSSL_1_1_1' not found (required by nginx)

//先备份,将出错原文件重命名为.old,用自己的出错路径
#sudo mv /usr/local/lib/libssl.so.1.1 /usr/local/lib/libssl.so.1.1.old
//复制一步找到的正确文件到出错文件地址
#sudo cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/local/lib/

解决.../libcrypto.so.1.1: version 'OPENSSL_1_1_1' not found (required by nginx)

//先备份,将出错原文件重命名为.old,用自己的出错路径
#sudo mv /usr/local/lib/libcrypto.so.1.1 /usr/local/lib/libcrypto.so.1.1.old
//复制一步找到的正确文件到出错文件地址
#sudo cp /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/local/lib/

总结

1.删除前先备份
2.执行知道自己在做什么
3.从报错出发,理清思路

原文地址:https://blog.csdn.net/zyxinside/article/details/125235862

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_28824.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注