Can I run Tomcat securely on port 443 and insecurely on 8080

Let me explain my situation.

Currently, I have a lot of applications running on Tomcat 6, on the default port 8080.

I just created some applications that will need a log in. I'm going to buy an SSL certificate to install on this server.

I don't like the idea of using port 8443 because it makes the URL more complicated. If I run Tomcat on port 80, I'd have to change dozens of links and I'd have to run Tomcat as root ( rather than tomcat ).

Is there any problem running the insecure applications on port 8080 but having the secure run on port 443?

I'm imagining my setup will have URLs that look like this:

http://mydomain.com:8080/report/controller?id=weather

https://mydomain.com/secure/controller?id=profile

Is this possible?

8
задан jeph perro 24 August 2010 в 22:59
поделиться

2 ответа

Да, все в порядке. Просто настройте разъемы для использования соответствующих портов. Но для 443 я предполагаю, что потребуется также root.

5
ответ дан 5 December 2019 в 04:41
поделиться

Настройка коннектора HTTP на 8080 и коннектора HTTPS на 8443. В объявлении добавьте proxyPort и установите для него порт HTTP и HTTPS по умолчанию (80 и 443 соответственно). Настройте правило перенаправления брандмауэра с 80 на 8080 и с 443 на 8443. Затем сервер будет принимать обычные URL-адреса http и https без необходимости указывать номера портов.

Ниже приведен образец описания этих разъемов.

<Connector
  maxSpareThreads='75'
  port='8080'
  proxyPort='80'
  enableLookups='false'
  maxThreads='150'
  connectionTimeout='20000'
  disableUploadTimeout='true'
  minSpareThreads='5'
  maxHttpHeaderSize='8192'
  redirectPort='443'
  acceptCount='200'
/>

<Connector
  SSLEnabled='true'
  keystoreFile='/path/to/keystore.jks'
  maxSpareThreads='75'
  port='8443'
  proxyPort='443'
  algorithm='SunX509'
  enableLookups='false'
  secure='true'
  maxThreads='150'
  connectionTimeout='20000'
  disableUploadTimeout='true'
  scheme='https'
  minSpareThreads='5'
  maxHttpHeaderSize='8192'
  sslProtocol='SSL'
  acceptCount='200'
  clientAuth='false'
/>

А вот несколько команд перенаправления IPTABLES:

# Redirect external packets
-A PREROUTING -j NAT-Port-Redirect

# redirect http traffic
-A NAT-Port-Redirect -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
# redirect https traffic
-A NAT-Port-Redirect -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
39
ответ дан 5 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: