【发布时间】:2023-04-10 13:32:05
【问题描述】:
我有一个使用 tomcat 在服务器上托管的 facebook 应用程序。我在处理传入请求的同一台机器上也有 apache 服务器,并根据它是安全端口(SLL 443)还是 80(标准 HTTP 端口)来重定向它们。我只有一个域,即 www.myfacebookapp.net。
当我需要在同一台服务器上托管我的应用程序和网站时,问题就开始了。通常这应该不是问题,但是我的应用程序和网站都必须支持 SSL(Facebook 强制要求它,因为它不接受任何不安全的连接(不是 https))
下面是我的配置总结
- 我只有一个域,即 www.yarimelma.net
- 我的 SSL 证书只支持一个域。
- 我在 /var/www/http/public_html/index.html 下提供了我的静态网页内容
- 我的tomcat实例运行在8080上,我的应用路径是www.myfacebookapp.net/myApp
- 所以当我运行我的 facebook 应用程序时,它会向 URL 发出 POST 请求:https://www.myfacebookapp.net/myApp
-
我已经用虚拟主机配置了我的 apache 实例,
VirtualHost1 (*: 80) ServerName www.myfacebookapp.net DocumentRoot /var/www/http/public_html/ VirtualHost1 (*: 443) #direct to tomcat ServerName www.myfacebookapp.net DocumentRoot /var/www/http/public_html/ ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ServerName www.myfacebookapp.net SSLEngine on #other ssl related config
当我从 80 (http://www.myfacebookapp.net) 访问我的网页时,它适用于我的 Facebook 应用程序和网页但是,我还应该支持我的网页支持 https 连接。不幸的是,我无法通过这种配置实现这一点。所以我想做什么,
- 通过 https 访问网页,这样https://www.myfacebookapp.net
- 此外,当通过 URL https://www.myfacebookapp.net/myApp(facebook 调用它以呈现 facebook 应用 iframe)访问时,请保持来自安全端口的 tomcat 重定向
是否可以在没有任何额外的域名和 SSL 证书的情况下实现这一点?
我找不到这样的配置,
- 如果请求来自https://www.myfacebookapp.net/myApp *:443 -> 则重定向到http://127.0.0.1:8080(tomcat 到服务器应用)
- 如果请求来自https://www.myfacebookapp.net -> 然后重定向到/var/www/html/public_html(服务网页)
Apache 文档说我不能为 443 (https) 和同一个域定义两个虚拟主机。
基本上,我想将我的 facebook 应用程序和网站托管在同一台服务器上,并且两者都应该可以通过 https 访问。
有人知道这方面的任何解决方案吗?
谢谢/
【问题讨论】:
标签: facebook apache tomcat ssl virtualhost