Я использую безголовый сервер 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-адресом вашего компьютера)