Apache和Apache tomcat之间使用标准端口进行SSL共享

时间:2017-11-03 15:42:08

标签: java wordpress apache tomcat ssl

我在端口80上运行的Apache服务器上部署了wordpress应用程序,我还在端口443上运行的Tomact服务器上部署了一个java Web应用程序。

基本上我有:

http://mysite.com(Apache)

https://mysite.com/application(Tomcat)

现在我需要开始为我的网站使用我的SSL证书。我知道这些进程不能共享同一个端口。有没有办法保留两个网址而不添加额外的端口?所以两者都可以通过以下方式访问:

https://mysite.com(Apache)

https://mysite.com/application(Tomcat)

2 个答案:

答案 0 :(得分:0)

我将这个答案基于我在Tomcat实例前面的Apache配置。我没有您的确切配置,但我相信以下内容应该有效。

我有一个SSL配置,这是事情转发到Tomcat的地方。  我把它修改为我认为你需要的东西:

<VirtualHost _default_:443>
    ServerName www.example.com

    ProxyPreserveHost on
    ProxyPass /application http://localhost:8080/application
    ProxyTimeout 360

    # rest of the ssl configuration
</VirtualHost>

这应该将/application下的所有内容转发给Tomcat,并保持其余部分由Apache提供服务。请注意,这假设您已为服务器启用了proxy(a.k.a. mod_proxy)模块。

答案 1 :(得分:0)

一种简单的方法是挂载Nginx服务器并根据URL命中管理重定向:

server {
    listen 80;
    server_name *.domain.me;
    location / {
        return 301 https://$host$request_uri;
    }
}
server {
    listen 443 ssl;
    server_name *.domain.me;

    ssl_certificate /path/to/crt;
    ssl_certificate_key /path/to/key;


    location / {
        proxy_pass http://destinationIp:destinationPort;
        proxy_set_header Host $host;
    }
}