在端口 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 证书的主要内容,如果未能解决你的问题,请参考以下文章
Apache 端口转发 80 到 8080 并访问托管在 Apache (80) 中的应用程序,即 phpMyadmin 和 Tomcat (8080)
tomcat外网无法访问80和8080端口,其他端口可以访问