Как настроить Cloudflare proxy в режиме "Полный (строгий)" для доступа из внутренней сети?

У меня возникли сложности с решением следующей задачи: <br/> У нас есть внутренний сервис, который работает с внешним миром. Для защиты от ботов, нецелевых регионов и скрытия реального IP-адреса мы включили проксирование через Cloudflare (CF). Все функционирует корректно. <br/> Затем мы решили повысить уровень безопасности, установив на сервисе самоподписанный сертификат и включив в CF режим полного шифрования (шифрование между сервисом и серверами CF без проверки действительности сертификата). На текущий момент все работает. <br/> <br/> Теперь у меня есть вопрос: как сделать так, чтобы сервис (и самоподписанный сертификат) был валидным для локальной сети? <br/> Рассмотрены следующие варианты: <br/> 1. Установить самоподписанный сертификат на всех устройствах в локальной сети. Эта идея кажется неудачной по очевидным причинам, особенно в случае мобильных и домашних устройств. <br/> 2. Использовать Let’s Encrypt (LE) сертификаты для сервиса. Теоретически, это должно работать - в локальной сети будет использоваться LE сертификат, а в интернете - сертификат CF. Однако у меня есть сомнения, что certbot сможет выпустить LE сертификат для сервиса, который уже отдает сертификат от CF. <br/> 3. Удалить из DNS локальной сети адрес сервиса, так чтобы доступ к нему осуществлялся исключительно через CF. Тем не менее, привязка внутреннего сервиса к внешнему для доступа выглядит странно, особенно если нужно передавать большие объемы данных - в локальной сети мы хотим делать это быстрее. <br/> <br/> Кажется, существует более простой способ решения этой проблемы :)
  • 23 декабря 2024 г. 22:43
Ответы на вопрос 2
Для решения вашей задачи по безопасному доступу к внутреннему сервису через Cloudflare с использованием самоподписанного сертификата можно рассмотреть следующие подходы:

### 1. Использование DNS-сервера для внутренней сети
Если ваш внутренний сервис доступен только через Cloudflare, можно настроить DNS-сервер в вашей локальной сети так, чтобы имена хостов разрешались на IP-адреса, которые указывает Cloudflare. Однако это может вызвать задержки и усложнения при передаче больших объемов данных.

### 2. Настройка проксирования
Вы можете настроить проксирование через промежуточный сервер, который будет находиться как в локальной сети, так и в интернете. Этот сервер будет действовать как обратный прокси и будет выполнять следующие шаги:

1. **Внешний доступ**: На внешнем сервере (например, на VPS) размещен nginx или другой веб-сервер, который будет проксировать запросы к вашему внутреннему сервису.
2. **Кэширование и оптимизация**: Настройте кэширование для улучшения скорости обработки запросов.
3. **Поддержка сертификатов**: Используйте Let's Encrypt на внешнем сервере для получения действительного сертификата, в то время как внутренний сервис по-прежнему использует самоподписанный сертификат.

### 3. Конфигурация дополнительных устройств
Если все устройства в локальной сети могут доверять вашему самоподписанному сертификату, вы можете использовать инструмент автоматического обновления сертификатов (например, `certbot`) и установить корневой сертификат (или сертификат, подписывающий ваш самоподписанный сертификат) на всех устройствах.

### 4. Использование Network Policy для разрешений доступа
Если ваше приложение или сервис поддерживает проверки IP-адресов, вы можете настроить его таким образом, чтобы оно принимало только запросы от определенных IP-адресов в вашей локальной сети. В этом случае, разрешая трафик только от локальных IP-адресов, вы можете избежать необходимости использовать сертификаты для внутренней сети.

### 5. Установка самоподписанного сертификата на прокси сервер
На промежуточном прокси-сервере (если вы используете его) можно установить самоподписанный сертификат, и он будет выполнять проверку и проксирование запросов, получая сертификат от Cloudflare и обеспечивая шифрование.

### Заключение
Каждый из приведенных выше вариантов имеет свои плюсы и минусы. Если у вас есть возможность управлять внутренними устройствами и менять их настройки, тогда первый или третий варианты могут стать подходящими. Если же вам понадобится большая гибкость и безопасность в интернете, то использование прокси-сервера может быть наиболее оптимальным.
2. прикрутить к сервису LE-шные сертификаты

ИМХО самое правильное
Похожие вопросы