当前位置:网站首页>centso7 openssl 报错Verify return code: 20 (unable to get local issuer certificate)

centso7 openssl 报错Verify return code: 20 (unable to get local issuer certificate)

2022-07-07 11:09:00 白杨攻城狮

问题重现: 

        由于centos7 默认的openssl的版本为1.1.0k,本人编译媒体服务时,需要openssl版本1.1.1以上,所有删除的之前的低版本openssl,手动编译了一个1.1.1k的版本,媒体服务正常运行,并且CA验证正常。

        结果昨天晚上服务器断电重启后,当我在获取电信MQ数据时,openssl一直报错,Unhandled exception. System.Security.Authentication.AuthenticationException:The remote certificate was rejected by the provided RemoteCertificateValidat

使用openssl的命令测试连接状态:

openssl s_client -connect msgpush.ctwing.cn:16651

得到以下结果:

        

 提示,无法加载本地证书。使用了各种方案,编译各种版本的openssl,还是不行。

百般无奈下,只能分析线上环境的openssl(线上为云服务器,openssl为1.02K)与本地服务器的openssl的区别,又经历了痛苦的几个小时。终于在查看openssl 版本的命令中,看出了端倪,这个命令很重要:

openssl version -d

        线上打印的结果:

        

 本地服务器的结果:

 进入线上环境openssl 的目录:执行命令

ll

显示结果:

关键点就这个目录,看我标红的部分,这里的软链接就是证书的位置

我们再来看,本地服务器

 可以看到,并没有看到证书的软链接,

所以一切的原因就是这里,没有告诉系统openssl使用的证书位置。所以我们创建一个软链接即可。

ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem cert.pem
 

执行结果如下:

 

当我们再次使用openssl的测试命令时:成功了,

 

 

原网站

版权声明
本文为[白杨攻城狮]所创,转载请带上原文链接,感谢
https://blog.csdn.net/yunxiaobaobei/article/details/125608720