Обратный прокси: ГОСТ на внешнем и внутреннем соединении¶
Обратный прокси строит два независимых соединения: от пользователя к Nginx и от Nginx к приложению. Криптографические профили этих участков могут отличаться.
Типовые архитектуры¶
Внешний ГОСТ, внутренний HTTP: клиент использует ГОСТ-TLS, а backend расположен на защищённом локальном сокете или интерфейсе. При выходе за пределы доверенного узла такой вариант требует дополнительной защиты.
Внешний обычный TLS, внутренний ГОСТ: используется там, где внешний клиент не поддерживает ГОСТ, а внутреннее приложение требует соответствующий криптопрофиль.
ГОСТ на обоих участках: требуется отдельная проверка каждой TLS-сессии. Наличие ГОСТ на внешнем участке не означает автоматически ГОСТ в proxy_pass.
Шаблон с отдельной проверкой upstream¶
location /service/ {
proxy_pass https://backend.example.invalid:9443;
proxy_ssl_server_name on;
proxy_ssl_name backend.example.invalid;
proxy_ssl_verify on;
proxy_ssl_trusted_certificate /etc/nginx/gost/upstream-ca.pem;
proxy_ssl_verify_depth 2;
}
Включайте proxy_ssl_verify on: без него HTTPS-шифрование не защищает от подмены upstream на уровне сертификата. Для внутреннего ГОСТ-TLS отдельно задаются поддерживаемые настройки OpenSSL и проверяются фактические алгоритмы handshake.
Приёмка двух участков¶
- Сохраните лог TLS клиента до Nginx.
- Снимите согласованный профиль Nginx → upstream.
- Проверьте подлинность имени и сертификата на обоих участках.
- Проверьте передачу HTTP-ответа и недоступность upstream напрямую из внешней сети.
- Сохраните возможность отката к предыдущему proxy-конфигу.
Не путайте шифрование внешнего TLS с HTTP-шифрованием содержимого на backend: это разные границы доверия.