Cloudflare proxy, full (strict) с доступом из внутренней сети, как?
Чет не могу сообразить как решить задачку:
Имеем внутренний сервис, который смотрит наружу. Для отсечки ботов/ненужных регионов/скрытия реального IP на CF включен proxy. Все работает, все отлично.
Повышаем безопасность - прикручиваем к сервису самоподписанный сертификат, в CF включаем режим full (шифрование от сервиса до серверов CF, без проверки валидности сертификата) - все отлично, все работает.
Вопрос, как сделать сервис (сертификат) валидным из локалки?
Варианты которые приходят в голову:
1. установить всем в локалке самоподписанный сертификат - идея так себе, по очевидным причинам (мобилы/домашние устройства и пр)
2. прикрутить к сервису LE-шные сертификаты. Теоретически должно работать - в локалке будет отдаваться LE серт, в интернете CF-proxy'шный. Но есть подозрение, что certbot, слегка удивится попытке выпустить LE-сертификат, для сервиса который отдает CF-сертификат
3. Удалить из DNS'а локальной сети адрес сервиса, чтобы вообще все ходили через CF. Привязывать внутренний сервис к внешнему для доступа выглядит как-то странно, плюс если требуется гонять большой объем данных, в локалке хочется делать это быстрее.
выглядит так как будто должен быть более простой способ решить проблему :)
Из внутренней сети делаете доступ либо по локальному доменному имени, либо по тому же имени, но резолвящемуся в локальный IP - и обрабатываемому другим конфигом веб-сервера, без mTLS.
Из внутренней сети делаете доступ либо по локальному доменному имени,
Этож издевательство над пользователями в особо извращенной форме. Люди должны в голове постоянно держать в какой сети они находятся - если ты в интернете то или на service.company.com, если в локалке то на service.local.com, если включен VPN то тоже на service.local.com. И хорошо если это браузерный сервис, а если у нас клиент это приложение, то надо каждый раз в настройки ползать. Ну и для локального сервиса все равно потребуется сертификат - самоподписанный, т.к. LE его не выдаст. Т.е. получим п.1
либо по тому же имени, но резолвящемуся в локальный IP - и обрабатываемому другим конфигом веб-сервера, без mTLS.
Не осознал идею. Другой конфиг, допустим, а сертификат то чей(какой) ставить - LE или Self-signed?