У меня есть сервер Nginx, к которому клиенты обращаются с сертификатом клиента, содержащим определенный CN и SAN.Я хочу иметь возможность извлекать поля CN (Common Name) и SAN (Subject Alternative Names) этого сертификата клиента.
примерный пример конфигурации:
server {
listen 443 ssl;
ssl_client_certificate /etc/nginx/certs/client.crt;
ssl_verify_client on; #400 if request without valid cert
location / {
root /usr/share/nginx/html;
}
location /auth_test {
# do something with the CN and SAN.
# tried these embedded vars so far, to no avail
return 200 "
$ssl_client_s_dn
$ssl_server_name
$ssl_client_escaped_cert
$ssl_client_cert
$ssl_client_raw_cert";
}
}
Использование открытых встроенных переменныхкак часть модуля ngx_http_ssl_module я могу получить доступ к DN (различаемому имени), и, следовательно, CN и т. д., но я не могу получить доступ к SAN.
Есть ли какие-товстроенный var / other module / general Nginx foo Мне не хватает?Я могу получить доступ к необработанному сертификату, поэтому можно ли его расшифровать вручную и извлечь?
Я бы предпочел сделать это на уровне Nginx, а не передавать сертификат на уровень приложений и делать это там.
Любая помощь очень ценится.