首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用反向代理和代理服务器之间的ssl

禁用反向代理和代理服务器之间的ssl
EN

Server Fault用户
提问于 2016-09-25 14:04:26
回答 1查看 2.5K关注 0票数 0

我有一个标准的反向代理,使用nginx和Tomcat 8。

我希望nginx处理加密,但仍然通知tomcat连接是否安全。

我有过

代码语言:javascript
复制
location /{
 listen 80;
 proxy_pass http://backend:8080;
}

location /{
  listen 443 ssl;
  proxy_pass https://backend:8443;
}

tomcat有以下配置:

代码语言:javascript
复制
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="false" scheme="https" secure="true" clientAuth="false" URIEncoding="UTF-8"/>

不管怎么说我都错了

代码语言:javascript
复制
SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream, client: 185.3.147.237, server: backing, request: "GET /favicon.ico HTTP/1.1", upstream: "https://127.0.0.1:8443/favicon.ico", host: "

我如何告诉nginx,即使地址以https开头,也没有加密到后端的连接?

EN

回答 1

Server Fault用户

发布于 2016-09-25 14:27:55

Tomcat配置有SSLEnabled=false。因此,Tomcat在8443端口上侦听标准HTTP,而nginx无法连接到它。

我将实现这一点,以便使用Tomcat的单个上游端口,并设置包含SSL状态的HTTP报头。就像这样:

代码语言:javascript
复制
server {
    listen 80;
    listen 443 ssl;
    server_name example.com;
    proxy_set_header X-SCHEME $scheme;

    proxy_pass http://backend:8080;
}

此服务器块接收到httphttps,将所有请求传递给Tomcat http后端,并设置一个标头X-SCHEME,即httphttps。那么你的后台就有你想要的信息了。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/805202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档