首页 > 解决方案 > 使用 TLS 1.0 调用 TLS 1.2 的客户端认为 NGINX

问题描述

我有一个在 Windows Server 2003 下运行的客户端 Y,它只支持 TLS 1.0 (.NET Framework 3.5),我有一个在 Linux (Java 1.8) 下运行的带有 NGINX 的服务 X,它只接受与 TLS 1.2 的连接。

Client Y (TLS 1.0) ---> calls ---> Service X (TLS 1.2 over Nginx).

这是我的 NGINX 配置:

# HTTPS server
server {
  listen 80;
  listen 443 ssl;
  server_name myapi.com.br;
  ssl_certificate  /etc/pki/tls/certs/myfile.cer;
  ssl_certificate_key /etc/pki/tls/private/myfile.key;
  ssl_session_timeout 5m;

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://localhost:8080/;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $host;
    proxy_redirect off;
    }
}

但它不起作用,客户端 Y 无法调用服务 X,但另一个使用 TLS 1.2 的客户端 Z 可以毫无问题地调用服务 X。

这是nginx中的错误:

2019/08/06 11:23:18 [crit] 25199#0: *253185 SSL_shutdown() failed (SSL: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init) while SSL handshaking, client: 10.31.68.186, server: 0.0.0.0:443

标签: sslnginxtls1.2

解决方案


推荐阅读