Я использую nginx как обратный прокси-сервер для внутреннего приложения.
- Клиенты подключаются к nginx с сертификатом-A.pem, а nginx использует промежуточный ЦС, связанный с корневым ЦС, для проверки клиентов (ВСЕ ОК).
Теперь пришла проблема:
- nginx должен пересылать запросы бэкэнд-приложению, используя тот же заголовок, что и реальный хост (содержащий сертификат-A.pem). Пакеты, пересылаемые бэкэнд-приложению, должны быть идентичны пакетам клиентов, полученным с помощью nginx.
Почему? Поскольку у меня очень большое количество клиентов для управления (каждый с другим сертификатом, выпущенным одним и тем же промежуточным центром сертификации), бэкэнду нужен сертификат (используется для выполнения каких-либо задач), но я хочу предварительно проверить этот сертификат с помощью nginx ( действительно самый быстрый)
Я устал от другой конфигурации, но я не могу понять, как proxy_set правильный заголовок
upstream proxy_server {
server 127.0.0.1:8443; <---my backend application
}
server {
listen 443 ssl;
listen [::]:443;
ssl_certificate /home/mender/Projects/utility-scripts/gwsw-root-gen/cert_tree/intermediate_CA/gwsw/x509-med_ca_gwsw.pem;
ssl_certificate_key /home/mender/Projects/utility-scripts/gwsw-root-gen/cert_tree/intermediate_CA/gwsw/x509-med_ca_gwsw-key.pem;
location / {
proxy_pass https://proxy_server;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Custom-Referrer $http_x_custom_referrer;
}
}
Невозможно проверить сертификат.