当前位置: 首页 > 知识库问答 >
问题:

Spring启动 SSL 在 Apache2 服务器后面

双恩
2023-03-14

我有一个使用SSL处理设置的Spring Boot应用程序。我使用iptables重新路由将所有端口80流量路由到Spring Boot端口8080,将所有443流量路由到Spring Boot8443。

然后,Spring Boot将所有http流量重定向到https(443)。一切都很好。

现在我想运行Apache2服务器,并使用它将流量重定向到Spring Boot,而不是直接使用iptables重新路由。

我为该站点创建了以下conf文件:

<VirtualHost *:80>
    ServerAdmin mail@gmail.com
    ProxyPreserveHost On
    ProxyRequests Off

    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    ErrorLog ${APACHE_LOG_DIR}/site/error.log
    CustomLog ${APACHE_LOG_DIR}/site/access.log combined
</VirtualHost>

<VirtualHost _default_:443>
    ServerAdmin mail@gmail.com
    ProxyPreserveHost On
    ProxyRequests Off

    ProxyPass / https://localhost:8443/
    ProxyPassReverse / https://localhost:8443/

    ErrorLog ${APACHE_LOG_DIR}/site/error.log
    CustomLog ${APACHE_LOG_DIR}/site/access.log combined

</VirtualHost>

但它似乎不起作用。我收到“此站点无法提供安全连接”。尽管从 http 到 https 的重定向(在Spring启动中设置)似乎确实有效。

我在google上找到的大部分东西都展示了如何在Apache2后面配置spring boot,用Apache2处理ssl。我如何设置它,让spring boot处理ssl,而Apache基本上只做端口映射。或者设置Apache来处理ssl会不会不那么痛苦?

共有1个答案

满自明
2023-03-14

看起来我想要的是Apache2不支持的“通过SSL代理”。

环顾四周,Nginx确实支持这样的东西:https://serversforhackers . com/c/TCP-load-balancing-with-Nginx-SSL-pass-thru

但即使这样,也存在额外的复杂性,因为这使得服务器很难判断出请求被发送到哪个主机,因为它不能解密加密的请求

在Spring Boot之前设置web服务器的目的是在该服务器上托管多个站点,所以我想我只需要设置Apache2来终止SSL。

 类似资料:
  • 问题内容: 我有一个flask应用程序,目前正在以以下方式启动: 当我运行此脚本时,它通过打印成功执行: 但是它永远不会返回,如果我执行CTRL-C,服务器将停止。我正在尝试将其部署到生产环境中,并希望在后台运行此启动,只要服务器启动,进程就可以启动。 做这个的最好方式是什么? 问题答案: 可能是使其在后台运行的最简单方法。就是说,如果你要将其转入生产环境(如@LukasGraf所提到的那样,则不

  • 我正在使用Spring Boot注册服务器(Eureka服务器)。目前它正在使用以下配置。 项目名称:注册服务 内部主要方式:系统。setProperty(“spring.config.name”、“注册服务”); "yml file": 文件名:注册-服务内容: 通过以上配置,应用程序开始在2323上运行。但如果我换了Spring。配置。名称,它不工作,开始给连接拒绝异常。 > 为什么会这样?即

  • 问题内容: 尝试使用go与postgres数据库通信,准备如下语句: 引发以下错误: 有什么办法吗? 如果需要,我可以添加更多信息。 问题答案: 您应该建立没有SSL加密的数据库连接,如下所示:

  • 所有的项目都在构建,所有的单元测试都在运行。然而,今天我发现使用eureka的服务发现不再起作用了。 对于测试,我通常一开始启动我的eureka服务器,等它完全上来。之后,我启动客户,以便他们可以注册到它。问题是:当我启动第一个客户机服务时,eureka服务器就会关闭并尝试重新启动,抛出许多在第一次启动时没有的异常。 最终,当它似乎已经解决,我不能调用我的服务,可能是因为它们是不可发现的。 以下是

  • 服务器重启后无法启动Apache HTTPD。我们 /etc/httpd/conf/拥有功能。用户/组。因此,我们使用脚本来启动httpd.conf每次服务器重启时,我们都无法启动HTTPD。我们发现 /var/run/httpd在重启后被更改为apache/root。因此,脚本无法启动功能下的HTTPD。用户/组。 请帮帮我!!!

  • 我在Spring 3中使用@Scheduled annotation。我需要每周或每两周运行一些任务,所以我使用cron表达式作为参数,例如。 我的问题是,如果我将创建必须每7天运行一次的计划任务,并且在第6天我将重新启动服务器(与战争重新部署),它会重置这个计划任务(我需要再次等待7天)还是它会保存其状态并在第7天触发此任务?