在端口 443 上使用 SSL 进行 Tomcat 的现代安装

在端口 443 上使用 SSL 进行 Tomcat 的现代安装

在我正在编写的计算机课程中,我使用 Tomcat 作为服务器。(学生学习如何从头开始设置 CentOS 和一切。目前课程让他们使用在端口 8080 上运行的 Tomcat。)我将回去编写有关安全性的部分。我希望学生学习如何设置他们的 Web 服务器以在端口 443 上使用 SSL/TLS,并将 HTTP 端口 80 重定向到 HTTPS 端口 443。这应该是一个非常基本的配置,不是吗?

我上次自己这样做大约是在 10 或 15 年前,当时我自己编译了 Apache,并使用各种连接器将其放在 Tomcat 前面(我必须查看当时的配置),购买价格高得离谱的 SSL 证书并手动安装它们。我确信情况已经大大改善了。最近,我设置了 Apache(我不必编译它)直接托管静态页面,并且使用 Let's Encrypt(一旦我弄清楚我应该做什么)进行 SSL 操作非常轻松。它运行良好。所以我认为无论我为学生开出什么解决方案,我都会使用 Let's Encrypt。

那么,对于 Tomcat,在端口 443 上使用 SSL(最好使用 Let's Encrypt)并将 HTTP 端口 80 转发到 HTTPS 端口 443 的最佳实践、直接和简单设置是什么?我还需要将 Apache(或 Nginx?)放在它前面吗?(我上次检查时,让 Tomcat 使用较低的端口号很麻烦,而且似乎没人知道一种简单、直接的方法来做到这一点。)

答案1

可以配置具有 TLS 的 Apache Tomcat并将 改为port="8443"port="443"也可以将所有 HTTP 重定向到 HTTPS,方法Connector如下:

<Connector port="8080" protocol="HTTP/1.1" 
           redirectPort="443"/>

在 Apache Tomcat 之前使用 Apache 或 Nginx 可能仍然是一个好主意,因为它使您可以使用外部Web 应用程序防火墙(网络防火墙):ModSecurityOWASP 核心规则集。它还允许使用 Let's Encrypt 证书 (Certbot)要容易得多。 Tomcat 可以运行您的 Web 应用程序,监听纯 HTTP,localhost:8080而反向代理则监听阿帕奇/Nginx处理 WAF 功能和 TLS 连接。

相关内容