Могу ли я безопасно запускать Tomcat на порту 443 и небезопасно на 8080

позвольте мне объяснить мою ситуацию.

В настоящее время у меня много приложений, работающих на Tomcat 6, на порту по умолчанию 8080.

Я создал несколько приложений, которые нужно войти. Я собираюсь купить SSL-сертификат для установки на этом сервере.

Мне не нравится идея использования порта 8443, потому что это делает URL более сложным. Если я запускаю Tomcat на порту 80, мне придется изменить десятки ссылок, и мне придется запускать Tomcat как root ( а не кот.)

есть ли проблемы с запуском небезопасных приложений на порту 8080, но с безопасным запуском на порту 443?

Я представляю, что моя установка будет иметь URL-адреса, которые выглядят так:

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

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

это возможно?

2 ответов


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


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

Ниже приведен пример объявления этих соединителей.

<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