Могу ли я получить сертификат HTTPS для IP-адреса?

Хорошо, вот пример использования: Я построил блокировщик рекламы и контента на основе DNS. Я использовал для этого dnsmasq в качестве пересылки dns. Если пользователь домена, который пытается посетить, занесен в черный список, то dnsmasq разрешит домен на другой IP-адрес, на котором размещена HTML-страница, информирующая пользователя об ограничении. Это работает для доменов http, но не работает для доменов, использующих https и hsts.

-1
задан 14 November 2017 в 11:47
2 ответа

Да, вы можете запросить сертификаты для IP. Нет, это не будет работать так, как вы хотите, IP должен быть заголовком хоста ( https://192.0.2.10 ).

Если вы контролируете всех клиентов, вы можете отказаться от всех веб-сайтов с помощью частного сертификата авторитет, который вы контролируете, аналогично системам, подобным Content Keeper

3
ответ дан 5 December 2019 в 19:12

Если вы перенаправляете пользователя (например, с помощью перезаписи DNS), то вы пытаетесь создать (легитимного) человека-посередине (MitM). По сути, вы притворяетесь тем, кем вы не являетесь.

С точки зрения HTTPS не существует подходящего решения, подходящего для всех. Единственное возможное решение - иметь что-то, что создает сертификаты на лету со своим собственным выдающим сертификатом (, а не , которому доверяет какой-либо ЦС), а затем заставляет этот сертификат доверять (путем импорта) во все ваши клиентские устройства, поэтому они видят ваш MitM как действительный

... за исключением, конечно, HSTS. Когда вы делаете эту вещь MitM, вы должны поддерживать список исключений или автоматически определять, когда не делать MitM, иначе вы сломаете такие вещи, как мобильные / банковские приложения, которые используют HSTS / закрепление сертификатов.

Это то, что большие межсетевые экраны следующего поколения (например, FortiNet, Palo-Alto и другие).

Однако , поскольку вы говорите, что используете подход на основе DNS, а не разрешаете IP-адрес, который вы затем притворяетесь , вы можете вместо этого подумать о том, чтобы переписать его на 0.0.0.0 (или :: в случае записи IPv6 AAAA). Тогда это приведет к немедленному сбою соединения.

Это похоже на добавление следующего в ваш файл / etc / hosts.

0.0.0.0 backend1.example.com

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

0
ответ дан 5 December 2019 в 19:12

Теги

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