SSL握手期间与远程服务器出错

时间:2013-09-18 12:37:28

标签: apache tomcat ssl reverse-proxy

我有Apache2(在443上收听)以及在Tomcat7Ubuntu(在8443上收听)上运行的网络应用。

我将apache2设置为反向代理,以便通过端口443而不是8443访问Web应用程序。此外,我需要在浏览器和apache2之间以及apache2和tomcat7之间进行SSL通信,因此我在两者上都设置了SSL apache2和tomcat7。 如果我尝试通过直接联系tomcat7来访问Web应用程序,一切都很好。 问题是当我尝试通过apache2(反向代理)访问tomcat的web应用程序时,在浏览器上出现错误:

Proxy Error
The proxy server could not handle the request GET /web_app.
Reason: Error during SSL Handshake with remote server

3 个答案:

答案 0 :(得分:212)

MK的评论指出了我正确的方向。

对于Apache 2.4及更高版本,有不同的默认值和新指令。

我正在运行Apache 2.4.6,我必须添加以下指令才能使其正常工作:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

答案 1 :(得分:0)

面临与OP相同的问题:

  • Tomcat在通过SOAP UI直接访问时返回响应
  • 没有加载html文件
  • 当使用上一个答案中提到的Apache属性时,出现了网页,但AngularJS无法获得HTTP响应

Tomcat SSL证书已过期,而浏览器显示它是安全的 - Apache证书远未到期。更新Tomcat KeyStore文件解决了这个问题。

答案 2 :(得分:0)

我在docker,反向代理和Web服务器上设置了2个服务器。 一年后,我的所有网站突然开始发生此错误。 较早设置时,我在Web服务器上生成了一个自签名证书。

所以,我不得不再次生成SSL证书,它开始起作用...

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt