передайте публичный порт 81 для портирования 80 на локальном IP

Я думаю, что можно сделать это, но не способ, которым Вы пытаетесь сделать это.

Сертификат SSL является оператором, связывающим общедоступный ключ шифрования со структурой X.500, которая включает CN, или Общее название, элемент; сертификат со знаком - один такой, где привязка, несомненно, сертифицирована сторонним центром сертификации, с помощью открытый ключ, уже известный конечным пользователям (что стопка сертификатов Центра сертификации (CA), живущих в браузере).

При посещении защищенного от SSL веб-сайта с браузером CN со знаком сообщен браузеру. То, что браузер принимает решение сделать с ним, до браузера. Браузеры, о которых я знаю, сравнивают его с именем хоста, которое требуют, и ошибка, если это отличается (или если та сертифицированная привязка не противостоит анализу, например, сертификат подписания не известен браузеру, или привязка является устаревшей, но это - другой вопрос). Нет ничего, что в принципе мешает Вам получить публично подписанный сертификат, где CN является IP-адресом не FQDN (полностью определенное доменное имя) [1], но это волшебно не заставит браузер сравнить CN с IP-адресом, вместо с требуемым именем хоста.

Я подозреваю, что самый простой способ решить Вашу проблему состоит в том, чтобы запустить Ваш собственный CA, который легко сделать, и существует много общедоступных учебных руководств о; каждый здесь. После того как Ваши конечные пользователи импортируют Ваш CA в свои браузеры, все сертификаты, которые Вы чеканите, будут приняты как авторитетные.

У Вас может затем быть вторая проблема в этом, Вы хотите выполнить много сайтов NameVirtualHost на единственном IP-адресе. Это исторически было непреодолимо, с тех пор (в отличие от TLS) согласование SSL происходит перед чем-либо еще на соединении; то есть, CN, встроенный в Ваш сертификат, сообщается и используется, клиент, прежде чем клиент сможет сказать, что размещает, они пытаются соединиться с.

Недавно, расширение протокола под названием SNI (Признак Имени сервера), кажется, было представлено, который позволяет клиенту и серверу указывать, что они хотели бы сделать некоторый материал имени хоста, прежде чем сертификат SSL будет представлен, позволяя правильному ряда сертификатов быть данным сервером. По-видимому, это требует апачских 2.2.10, достаточно последней версии OpenSSL и (значительно) клиентской поддержки.

Таким образом, если бы я должен был сделать то, что Вы пытаетесь сделать, то я посмотрел бы на чеканку моего собственного сертификата CA, сообщение моим конечным пользователям, что они должны использовать браузеры, которые поддерживают SNI и импортируют мой корневой сертификат CA, и вырезание и подписание моих собственных сертификатов SSL для каждого bugtrack сайта.

[1] Хорошо, Вы не могли найти никого, кто сделает это, но это - деталь реализации. Что я пытаюсь показать, вот то, что, даже если бы Вы сделали, это не решило бы Вашу проблему.

3
задан 13 April 2017 в 15:13
1 ответ

Во-первых, вам не нужно иметь дело с этим / proc / sys / net / ipv4 / conf / ppp0 , если вы не используете модем на вашем шлюз.

Первое, что вам нужно сделать, это включить пересылку на вашем шлюзе следующим образом:

# echo '1' > /proc/sys/net/ipv4/conf/eth0/forwarding (if you are running your live IP on eth0)

Затем просто перенаправьте свой трафик следующим образом:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80
# iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Вы должны заменить 192.168.1.2 внутренним IP-адресом вашей машины. Также замените eth0 интерфейсом, на котором у вас есть действующий IP-адрес на вашем шлюзе.

и, наконец, как указано в сообщении, которое вы читали ранее, вы можете проверить маршрутизацию с помощью

# ip route

Надеюсь, это помогло. Не стесняйтесь вернуться, если у вас возникнут проблемы.

Также опубликуйте сообщения об ошибках, которые возникают в этом процессе.

3
ответ дан 3 December 2019 в 06:38

Теги

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