java - 这是 Apache + Tomcat 之间的虚假 SSL 连接吗?

标签 java apache tomcat ssl https

我正在查看使用 SSL 设置 tomcat + apache 的指南:http://www.mulesoft.com/tcat/tomcat-ssl

在“何时将 SSL 与 Tomcat 一起使用”部分下,它说:

"...换句话说,如果您将 Tomcat 置于 Web 服务器的前端,并且仅将其用作 应用程序服务器或 Tomcat servlet 容器,在大多数情况下,您应该让 Web 服务器充当所有 SSL 请求的代理”

因为我已经有一个使用 SSL 设置的网络服务器,所以我决定偷懒。我使用默认设置安装了 tomcat,并启动了它。在我的 httpd.conf 中,我将所有 80 流量重定向到 443,然后将 proxypass 和 proxypassreverse 重定向到 ajp://hostname.com:8009。我重新启动了 httpd,它“似乎”通过 ssl 重定向到 tomcat 服务器。这是完全坏了还是我真的设法做到了我第一次去的目的?非常感谢任何测试建议。

<VirtualHost *:80>
        ServerName hostname_DNS_alias.com
        Redirect / https://hostname_DNS_alias.com
</VirtualHost>

<VirtualHost *:443>
        SSLEngine On
        SSLCertificateFile /etc/pki/tls/certs/thecrt.crt
        SSLCertificateKeyFile /etc/pki/tls/private/thekey.key
        SSLCertificateChainFile /etc/pki/tls/certs/CA.crt
        ServerName hostname_DNS_alias.com
        DocumentRoot /var/www/html

        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Allow from all
        </Proxy>

        ProxyPass          /    ajp://hostname.com:8009/
        ProxyPassReverse   /    ajp://hostname.com:8009/
</VirtualHost>

最佳答案

我想您已经明白了,但您可以查看 HTTPD 和 Tomcat 上的访问日志以确认请求正在被代理。您应该会在两个系统上看到一个访问日志条目。

几个简短的笔记...

  • 如评论中所述,您可以从 Tomcat 中删除 HTTP 连接器。但这不是必须的。有时出于测试目的保持打开状态(即您可以直接访问服务器)或者如果您想在其上运行 Manager 应用程序会很好。如果你确实保留它,特别是如果你用它来运行 Manager 应用程序,你应该限制对它的访问。两种简单的方法是将 HTTP 连接器上的 address 属性设置为 localhost 或配置 RemoteAddressFilter .

  • 请记住,从 HTTPD 服务器到 Tomcat 的 AJP 连接未加密(SSL 在 HTTPD 处终止),因此您要确保流量永远不会通过不安全的网络(如 Internet)。

  • 由于您已经混合使用 HTTPD,您还可以使用它来提供静态文件。如果将它们部署到文档根目录,则可以添加“ProxyPass!”指令排除该路径被代理到 Tomcat。这将稍微减少请求的延迟,因为 HTTPD 确实需要从 Tomcat 获取静态文件。

关于java - 这是 Apache + Tomcat 之间的虚假 SSL 连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258153/

相关文章:

PHP代码没有被执行,但是代码显示在浏览器源代码中

java - Tomcat 9 无法在 Ubuntu 上使用 Java 10

java - hibernate "could not execute query"异常!

java - JLabel/JPanel 定位问题。 (网格包布局)

java - 实现 RealmModel 而不是在 Realm 中扩展 RealmObject 有什么好处吗?

尝试导出数据库时 phpMyAdmin 显示空白页?

java - 无法在 linux 上使用 tomcat 实现 waffle 身份验证。 javax.security.auth.login.LoginException :

java - Spring集成动态消息选择器

java - 获取 xml 元素的字节/字符偏移量

mysql - 无法将 Wordpress 连接到 MySQL 数据库