在端口 80 上为 Tomcat 和在 8080 上的 Apache 使用相同的 SSL 证书

Posted

技术标签:

【中文标题】在端口 80 上为 Tomcat 和在 8080 上的 Apache 使用相同的 SSL 证书【英文标题】:Use same SSL certificate for Tomcat on port 80 and Apache on 8080 【发布时间】:2012-10-18 01:40:39 【问题描述】:

我已经获得了域“www.example.com”的 SSL 证书,并且我已经在运行良好的端口 80 上运行的 tomcat 服务器中安装了这个证书。现在我的要求是在 https 中运行 php 代码,因为我的 Apache 在 8080 上运行我如何使 https:// 在端口 8080 上工作。甚至可能吗?我尝试在 Apache 中安装相同的证书(编辑 SSL.conf 文件以指向我的证书。)。我什至将 tomcat 密钥库转换为 apache 密钥文件。但我想我需要的 mod_ssl 没有安装在我的服务器中,我什至无法安装它(使用 mod_ssl 重新配置 Apache)。

总结一下我的问题:

    是否可以在运行在 8080 端口的服务器上安装 SSL 证书。 是否可以在 Apache 中使用从 tomcat 密钥库生成的相同证书 最简单的方法是什么? 如果安装 SSL 证书需要,如何使用 mod_ssl 重新配置 Apache。 (这可能是一个愚蠢的问题 -> 我在哪个文件夹下运行 ./configure --enable-ssl... 命令类型)

我的基本要求是通过 https 运行 PHP 和 JSP 代码。

【问题讨论】:

不清楚你是如何安装 Apache Httpd 的,但大多数发行版都提供了 mod_ssl (也许它根本没有启用)。此外,您应该考虑使用 HTTPS 配置端口 443,而不是 80(这是 HTTP 的默认端口),也许是 8443 而不是 8080。 Apache 是由我的托管服务提供商安装的,我向他们确认没有安装 mod_ssl。我的 Tomcat 在 80 上运行,但我的 https 在端口 443。我的问题是我的 jsp 文件可以使用 https 访问。但我也想通过 https 运行 php 文件。我怎样才能做到这一点?我通过 http://www.example.com:8080 访问我的 php 文件。我希望 https://www.example.com/ 也能工作 【参考方案1】:

更简单的方法是使用 Apache 作为前端,并使用其 ProxyPass 功能(与您的设置相反)。

让 Apache 在端口 80 和 443 (SSL) 上运行,并在 127.0.0.1:8080 上运行对特定网站和/或 URL 的 Tomcat 的代理请求。

更简单,因为要在 Apache 中进行设置,您只需添加一行...

ProxyPass /foo http://127.0.0.1:8080/foo

因此,当收到https://www.example.com/foo 的请求时,Apache 从 Tomcat 获取 /foo,并透明地传回给您……就用户而言,一切都是 SSL 的。

如果你不想这样做......

1) 是否可以在运行在 8080 端口的服务器上安装 SSL 证书。

是的。端口号没有硬编码为任何东西。只需在该 Tomcat 连接器中启用 SSL。

2) 是否可以在 Apache 中使用从 tomcat 密钥库生成的相同证书。

应该是的。证书是基于域的。他们不关心使用什么类型的服务器......但他们确实需要采用正确的格式。您可能需要重新格式化密钥和证书。

【讨论】:

感谢您的回答。我有很多应用程序在 Tomcat 上实时运行,所以我有点害怕更改 Tomcat 端口。但是根据您的方法,我在 Tomcat 上搜索了相当于 ProxyPass 并找到了一些资源。我会试一试,看看有没有什么效果。 我也遇到了类似的情况。我在 80 设置了 Apache 服务器,在 8080 设置了 Tomcat。ProxyPass /foo 127.0.0.1:8080/foo 选项成功了 :-)跨度> 【参考方案2】:

只需按照步骤操作,这很容易 :) https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-nginx-for-ubuntu-12-04

【讨论】:

以上是关于在端口 80 上为 Tomcat 和在 8080 上的 Apache 使用相同的 SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章

tomcat 修改默认端口8080 为 80端口

Apache 端口转发 80 到 8080 并访问托管在 Apache (80) 中的应用程序,即 phpMyadmin 和 Tomcat (8080)

linux 80端口映射到8080

tomcat外网无法访问80和8080端口,其他端口可以访问

tomcat的服务器 设置了8080端口 怎么域名指向这一段口

如何将Tomcat的端口从8080改为80?