Я пытаюсь создать роутер для внутреннего тестирования.Я использую изображение под открытым небом RESTY_CONFIG_OPTIONS_MORE.Поскольку сообщения, которые мы отправляем с клиента, являются двоичными и не имеют заголовков запросов, мы пытаемся извлечь издатель и серийный номер из сертификата и установить их в качестве заголовков запросов.Мы хотим использовать эти заголовки для маршрутизации на наш тестовый сервер, а не на производственный, в зависимости от значений заголовка.
Мой dockerfile получает его примерно так:
ENV RESTY_CONFIG_OPTIONS_MORE "--with-ngx_http_ssl_module"
Я уже попробовал следующеев блоке сервера, но он не работал:
rewrite_by_lua_block {
ngx.req.set_header("x-issuer", ngx.var.ssl_client_i_dn)
}
Автор упомянул, что утилита envsubst
включена во все изображения, кроме alpine и windows.Относится ли это к моей проблеме каким-либо образом?
Если простое добавление параметров конфигурации не сработает, что, по вашему мнению, является лучшим вариантом?
- Использовать nginx-ssl-variableпохоже, он делает именно то, что мы хотим: https://github.com/Seb35/nginx-ssl-variables
- Измените код openresty, чтобы создать наш собственный образ, который расширяет модуль ngx.ocsp, чтобы сделать сертификат доступным как
ngx.var.ssl_client_raw_cert in rewrite_by_lua_block
- Измените код openresty, чтобы создать наш собственный образ, который перезаписывает рукопожатие SSL
- Некоторая комбинация вышеприведенного
- Другое?