Могу ли я безопасно запустить Tomcat на порту 443 и небезопасно на 8080 - PullRequest
8 голосов
/ 25 августа 2010

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

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

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

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

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

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

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

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

Возможно ли это?

Ответы [ 2 ]

38 голосов
/ 25 августа 2010

Установите соединитель HTTP на 8080 и соединитель HTTPS на 8443. В декларации <Connector> добавьте атрибут 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
5 голосов
/ 25 августа 2010

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

...