问题分析:
今天在部署国密nginx安全认证通道时,遇到这个问题,在这里梳理一下整体思路。以下为个人理解,欢迎指正讨论。
这种报错大致分为两种:一类是required by openssl
;一类是required by mysql/nginx/其他应用命令
。
从根本来说,这个问题是LIBSSL.SO.1.1库缺少`OPENSSL_1_1_1k’ 这个版本。
//执行以下命令
//查看openssl版本
#openssl version
//搜索 libssl.so.1.1 动态so库里有没有OPENSSL_1_(原有版本)
#objdump –tT libssl.so.1.1 |grep OPENSSL_1_
如果库里能找到原有版本,库文件没有损坏,原因①;
库里找不到原有版本,库文件损坏,原因②。
第一类报错”required by openssl“更多的是原因①
第二类报错”required by nginx/mysql/…“更多的是原因②
解决思路:
原因一:
库文件没有损坏,只是缺少所需版本,一般升级openssl到库缺失的版本就可以解决,具体流程网上有很多,但是具体情况要具体分析,切记不要生搬硬套,可以多看几篇文章,了解每一步是在做什么,思考一下自己要怎样做。
生搬硬套吃大亏(手比脑快血泪史)
原因二:
//执行命令查找所有动态so库文件
#find / –name libssl.so.1.1
//在查询结果中找到没有出错的动态so库文件
比如 /usr/lib/x86_64-linux–gnu/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进行投诉反馈,一经查实,立即删除!