ssl - 是否可以在 nginx 中使用 SSL Passthrough 重定向 TCP 连接
问题描述
使用 nginx 中的流块,TCP 代理在 nginx 中不可用。通过 SSL 直通配置,它可以将客户端证书一直传递到后端服务进行验证。
我想将此 TCP 连接从带有所有证书的 nginx 重定向到同一服务的 https 端点
更新的问题:所以请求即将到来http://demo.local需要重定向到https://demo.local然后在重定向 https 请求后进行 SSL 直通
----> Nginx 配置
http {
server {
listen 80;
server_name demo.local;
location / {
return 302 https://demo.local$request_uri
}
}
}
stream {
# main log compatible format
log_format stream '$remote_addr - - [$time_local] "$ssl_preread_server_name -> $name ($protocol)" '
'$status $bytes_sent "" "" "" ';
map $ssl_preread_server_name $name {
demo.local pt-up-demo.local;
}
upstream pt-up-demo.local {
server 127.0.0.1:5000;
}
upstream proxy-up-demo.local {
server x.x.x.x:8080;
}
server {
listen 5000 proxy_protocol;
proxy_pass proxy-up-demo.local'
}
server {
listen 443;
proxy_pass $name;
proxy_protocol on;
ssl_preread on;
access_log /dev/stdout stream;
}
}```
解决方案
HTTP 重定向是在 HTTP 级别而不是在 HTTPS 级别完成的。为了让 nginx 发出此重定向,TLS 连接需要由 nginx 终止 - 这与您想要的 SSL 直通冲突。
推荐阅读
- asp.net-core - 使用 HttpContext 直接调用网络主机
- django - 在 Elastic Load Balancer 下使用 EC2 上的 Nginx 获取客户端 IP
- python - 通过 csv 导入水深测量并可视化大量水体
- python - 如何在运行时根据条件动态导入lookup.py文件?
- python - 从 c++ 调用将 cv::Mat 传递给 Python
- python - Networkx 两条边而不是一条边以显示循环
- c# - RabbitMQ RPC 以异步方式?
- postgresql - 在 postgres 容器中创建多个数据库
- c++ - 如何使用 Qt 5 (C++) 中的按钮运行和关闭 roslaunch
- sql-server - SQL Server - 列名无效