Назад | Перейти на главную страницу

Перенаправление порта с 443 на 8443 не работает для моего экземпляра tomcat

Я использую безголовый сервер Ubuntu 18.04 на выделенном хост-сервере. У хостера есть внешний брандмауэр, на котором я открыл порты 8443443 (tcp). На моем сервере ubuntu я использовал iptables, где я перенаправил порт 443 на 8443 с таблицей nat.

iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443

Также я открыл входящие и исходящие порты 443 и 8443.

Я все еще могу получить доступ к экземпляру tomcat с помощью example.com:8443 и не имею проблем, но example.com не отвечает. глядя в iptables, я не вижу падающих пакетов. На моем сервере tomcat я не меняю server.xml. Коннектор слушает 8443. Я не знаю, в чем проблема? Я надеюсь, что некоторые специалисты помогут мне решить эту проблему.

с уважением

черная борода

Что вам действительно нужно, так это обратный прокси (например, Nginx), который может выполнять завершение SSL за вас на порту 443, а затем передавать запрос Tomcat на порт 8443.

SSL / TLS сложен, и, на мой взгляд, полагаться на IPTABLES для обработки подтверждения SSL и передачи вашего запроса в приложение Tomcat - не лучшая идея.

Если вам действительно нужно использовать IPTABLES, подключитесь к сервису с помощью openssl и узнайте, что именно происходит. Отчет здесь и дополнительная помощь может быть доступна.

openssl s_client -connect www.example.com:443

Проблема также может заключаться в том, что вы используете nat стол. Насколько я понимаю, правила для этой таблицы применяются только в том случае, если запросы маршрутизируются. через сервер, в отличие от маршрутизации на другой порт с тем же IP-адресом.

Обратный прокси-сервер устранит большую часть этой сложности и предоставит вам гораздо больше функций (например, ограничение скорости, контроль доступа и т.д.) для загрузки.

Это может зависеть от того, к какому интерфейсу привязан ваш tomcat. Если он привязан к интерфейсу обратной связи, это вообще не сработает.

В основном цель REDIRECT используется с указанным интерфейсом, например:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 8443

(замените eth1 фактическим сетевым интерфейсом, на котором работает tomcat)

REDIRECT - это удобный метод для цели DNAT, поэтому, если вышеперечисленное не сработает, вы можете попробовать что-то вроде:

iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1:8443

(замените 10.0.0.1 IP-адресом вашего компьютера)