解决linux 不能访问 https 网站

这篇具有很好参考价值的文章主要介绍了解决linux 不能访问 https 网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在linux 服务器上运行了一份python脚本,一直以来都是正常运行的。但是突然,天有不测风云,最近突然运行出错了。查看出错日志,发现如下错误信息。

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)

看上去是脚本访问某个 https 网页失败导致的。而且这个错误是偶现的,有时候,这个 https 网页有时候又可以正常访问。所以感觉这个问题特别的奇怪。

安装 ssl 库

其实以前有遇到这个问题,运行了以下俩条命令就解决了。命令如下:

yum install openssl-devel
yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel

执行完这俩条命令,然而这次并不能顺利解决问题。又出现了以下的错误信息。

curl https://www.baidu.com

curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

简单翻译一下,就是百度的 ssl 证书不能被已知的 CA 验证。所以用浏览器打开百度网站很正常,这样看来应该是 linux 系统自带的证书库有点过时了吧,因此百度了一下,应该是需要更新证书库。

更新证书库

经过一番Google, 发现 linux 系统自带的证书库是 /etc/pki/tls/certs/ca-bundle.crt,所以大胆猜测是这个证书库自身的问题,至于为什么时灵时不灵,还真没有搞明白。时间比较紧急,先试一下更新一下本地证书库吧。Linux命令如下:

安装 ca-certificates

yum install ca-certificates

更新本地证书库

update-ca-trust -h
usage: /usr/bin/update-ca-trust [extract | check | enable | disable | force-enable | force-disable ]

update-ca-trust check
PEM/JAVA Status: DISABLED.
   (Legacy setup with static files.)
PKCS#11 module Status, see symbolic links reported below:
lrwxrwxrwx 1 root root 28 Jul 16 10:08 /etc/alternatives/libnssckbi.so.x86_64 -> /usr/lib64/nss/libnssckbi.so
    (link resolving to NSS: using legacy static list)
    (link resolving to p11-kit: using the new source configuration)

update-ca-trust enable

现在再试一下

 curl https://www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head>......</html>

问题完美解决了。还有一个遗留的小问题是: linux 系统自带的证书库是 /etc/pki/tls/certs/ca-bundle.crt,但是时灵时不灵,这个问题还需要继续研究。各位看官也欢迎一起探索。文章来源地址https://www.toymoban.com/news/detail-610804.html

到了这里,关于解决linux 不能访问 https 网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gradio部署应用到服务器不能正常访问

    用Gradio部署一个基于ChatGLM-6B的应用,发布到团队的服务器上(局域网,公网不能访问),我将gradio应用发布到服务器的9001端口 但是通过个人电脑的浏览器访问服务器显示拒绝连接。  之后,我又修改了share=True,Gradio返回了一个类似这样的地址,通过这个地址还是访问不到应

    2024年02月07日
    浏览(84)
  • 个人网站搭建 服务器http切换到https 网站协议切换到https

    博主自行搭建一个个人网站,国内的服务器和域名都要实名或者备案,觉得太麻烦了;于是用的是国外的,用的是知速云+cf。写这篇文章主要是想记录一下几天踩过的坑,帮助大家更快搭建好自己的网站。(同时也方便自己日后回顾) 推荐通过docker进行安装,方便管理。 1)

    2024年01月17日
    浏览(52)
  • 配置了阿里云服务器安全组依旧不能访问端口

    今天在云服务器的docker上安装了es, 启动了es外网却无法访问, 刚开始以为是配置或防火墙的问题, 关闭了防火墙或者在防火墙中放行了端口依旧无效,就开始按照网友说的解决方法照着做了下. 有说是配置文件问题的,得这样改: 看网上课程说yml文件里只加一句 最后很多种配置都

    2024年02月11日
    浏览(45)
  • windos 服务器设置指定ip访问指定端口,其他ip不能访问

    需求:设置指定ip访问指定端口,其他ip不能访问 一,禁止所有ip访问 需要打开IP安全策略 或者win+R 输入secpol.msc  1.先创建一个ip安全策略 2.点击添加,不使用添加向导,建一个安全策略  继续点添加 二,放开需要访问的ip   1.设置需要放开的ip地址  2.自定义名称,继续添加

    2024年02月04日
    浏览(56)
  • 阿里云安全组已经开放端口但是服务器端口还是不能访问

    查看安全组端口是否正确设置 查看服务器防火墙 其他使用命令自行百度 检查服务器应用程序对外访问端口是否已开启 检查阿里云后台是否选择正确的服务器所在地址,这是常常疏落之处,算是一个坑

    2024年02月12日
    浏览(46)
  • nginx一台服务器上配置两个https 域名网站

    要在 Nginx 中配置两个 HTTPS 网站,您需要执行以下步骤: 在服务器上安装 SSL 证书。您需要为每个网站安装单独的 SSL 证书。 在 Nginx 配置文件中创建两个 server 块,每个块代表一个网站。 在每个 server 块中,配置 SSL 证书和密钥文件的路径。 配置每个 server 块的 server_name 指令

    2024年02月10日
    浏览(60)
  • 【Linux】 ubuntu 安装搭建Samba cifs服务器,windows下无法访问如何解决!

    一、windows下无法访问samba 1、smbd没有正常启动;  service smbd  start       启动smbd   service smbd status      查看状态   2、主机和虚拟机需要可以互ping成功 3、共享文件的访问权限设置 4、windows和linux防火墙关闭, 之后重启smbd 5、在运行里面输入格式: “\\\\ +ip”   (因为我就是

    2024年02月05日
    浏览(56)
  • nginx 配置 可使用服务器IP访问网站

    如果想要在局域网中使用ip访问nginx配置的网站,需要在防火墙中设置开放端口 nginx 默认监听的是80端口,,我们也可以在nginx的配置文件中复制粘贴多个server,并设置不同的监听端口 1,添加80端口  firewall-cmd --zone=public --add-port  80/tcp  --permanent 2,重启防火墙服务:systemctl

    2024年02月14日
    浏览(48)
  • 在服务器上搭建Harbor私有镜像仓库并通过HTTPS访问

    目录 什么是Harbor 在服务器上搭建Harbor私有镜像仓库 使用HTTPS访问Harbor私有镜像仓库 生成证书文件 配置证书文件 验证https访问 上传镜像到Harbor私有镜像仓库 Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理

    2023年04月11日
    浏览(101)
  • 解决Linux服务器中docker访问报127.0.0.1:2375拒绝连接 (Connection refused)的问题

    org.apache.hc.client5.http.HttpHostConnectException: Connect to http://127.0.0.1:2375 [/127.0.0.1] failed: 拒绝连接 (Connection refused) 在Linux服务器中,Docker是远程访问的,因此需要开放2375端口。仅仅在防火墙开启2375端口是不够的。 如图红色框内所示,我的docker service文件存放在/usr/lib/systemd/system/目录

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包