ssl - 使用 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
解决方案
推荐阅读
- dart - 如何以高性能的方式异步处理飞镖中的大文件
- html - 使用 flexbox 的表单字段对齐问题
- python - Django 图像字段默认图像
- numpy - 对循环中的图像应用高斯模糊
- azure - 从 NAT 后面访问 Azure VM
- python - 从 .pyw 文件创建没有控制台的可执行文件
- oracle - 无法连接到 SQLDeveloper 中的数据库,I/O 错误:网络适配器无法建立连接
- r - 如何在 Shiny 的输入中添加逗号?
- python-3.x - 使用 tkinter 模块在 python 中制作菜单(餐厅菜单)
- docker - 任何 jdk 库在 docker-compose 中给我错误