当前位置: 首页 > 知识库问答 >
问题:

后端 - nginx ssl 报错?

陆英毅
2024-02-24

nginx error.log日志一直报

SSL_read() failed (SSL: error:0A000126:SSL routines::unexpected eof while reading) while keepalive, client: 223.75.74.91, server: 0.0.0.0:443

错误,我使用pc 浏览器访问一切正常,nginx上还挂着给app访问的api接口,在app上会出现有的用户可以访问有的出问题这种情况。搜索了百度和谷歌都没找到问题所在。

https 证书是阿里云买的证书。nginx配置如下

 server {       listen       443 ssl http2;       listen       [::]:443 ssl http2;       server_name  xx;       root         /usr/share/nginx/html;              client_max_body_size 100M;              ssl_certificate "/etc/pki/nginx/aliyun_app.yiluxq.com/xxx.pem";       ssl_certificate_key "/etc/pki/nginx/aliyun_app.yiluxq.com/xxx.key";       ssl_session_cache shared:SSL:1m;       ssl_session_timeout  5m;       #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;       ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;       #表示优先使用服务端加密套件。默认开启       ssl_prefer_server_ciphers on;              # Load configuration files for the default server block.       include /etc/nginx/default.d/*.conf;       error_page 404 /404.html;           location = /40x.html {       }       error_page 500 502 503 504 /50x.html;           location = /50x.html {       }   }

服务器系统版本:Rocky Linux release 9.1 (Blue Onyx)
nginx版本:nginx version: nginx/1.20.1
openssl版本:OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)

共有2个答案

翟宾实
2024-02-24
  1. 可以尝试将ssl_protocols 限制为TLSv1.2
  2. 还可以尝试升级nginx版本,如果允许的话
林元明
2024-02-24

这个问题可能是由于多种原因导致的,以下是一些可能的解决方案:

  1. 证书问题:确保您的 SSL 证书是有效的,并且与您的服务器配置兼容。如果证书有问题,可能会导致 SSL 握手失败,从而引发这个错误。
  2. 版本不兼容:根据错误信息,问题可能出在 SSL 协议版本上。尝试更改 ssl_protocols 指令以使用不同的 TLS 版本,或者更新 nginx 和 openssl 的版本,以确保它们与您的客户端兼容。
  3. 客户端问题:检查客户端(即访问 API 的应用程序)是否正确配置以使用 SSL。如果客户端没有正确配置,可能会导致 SSL 握手失败。
  4. 网络问题:可能存在网络问题,例如防火墙或安全组规则,阻止了 SSL 握手。确保您的网络配置允许 SSL 连接。
  5. 日志分析:查看 nginx 的日志,可能会有更多关于问题的详细信息。这可能有助于确定问题的确切原因。
  6. 更新 nginx 配置:确保您的 nginx 配置正确,并且与您的服务器和客户端兼容。例如,确保您的 ssl_certificatessl_certificate_key 指令指向正确的文件路径。
  7. 尝试不同的 SSL/TLS 套件:尝试更改 ssl_ciphers 指令以使用不同的加密套件。这可能会解决与客户端兼容性的问题。

以下是一种可能的解决方案,您可以尝试更新 nginx 和 openssl 的版本:

sudo apt-get updatesudo apt-get install nginx-full openssl

然后重新加载 nginx:

sudo systemctl reload nginx

如果问题仍然存在,您可能需要进一步检查您的网络配置、SSL 证书和 nginx 配置。

 类似资料:
  • 第一次使用这个报错有谁知道是怎么回事吗?

  • 总是需要了解一些前沿的技术;其目的可能是为了让技术精进,也有可能是害怕技术落后而掉队;总之需要从各类网站了解一些前沿信息。 以我举例,我经常在(Hacker News、Medium、Dev.to、Twitter、阮一峰、GitHub 关注、微博、V2EX、Ruby China、GitHub Trending)等地去学习。通过整理后,把每天值得分享的内容,发布到公司的 QQ 群里,让大家和我同时受益

  • vite开发环境正常,打包正式环境报错concat is not a function,求大佬帮忙看看 刚开始打包就报错,后来配置了@rollup/plugin-commonjs打包成功 然后打包后的文件打开就报错,弄一上午了,开发环境都正常

  • 看不懂。。。 log日志如下

  • vitest测试报错? 按照这篇教程我配置了测试环境来测试react组件,但是报错了,不知道为什么? 环境的介绍 用vite来构建我们的项目 安装vitest、jsdom、@testing-library/react、@testing-library/jsdom 在根目录下创建testSetup.js 修改vite.config.js 修改package.json文件 React组件 测试 报错

  • 问题来源 一个图床 其中处理图片的逻辑是本地读取图片并且以流的形式写入 response 在本地使用curl请求的时候(未配置curl参数) 的情况下请求的时候图片会报错 java.io.IOException: 你的主机中的软件中止了一个已建立的连接 尝试解决 在请求中判断header 如果是curl开头的就返回不支持json 但是这样会导致curl无法获取图片而且如果有其他类似curl的不接受