Сертификат клиента HTTP var в nginx пуст?

1111
digiadit

Я пытаюсь получить сертификат клиента HTTP в nginx, но всегда возвращаю пустым.

  • $ ssl_client_cert
  • $ ssl_client_fingerprint
  • $ ssl_client_raw_cert
  • $ ssl_client_serial

Все вышеперечисленное возвращается как пустое.

server { listen 8014; server_name localhost;  ssl on; ssl_certificate /root/cert/certificates/nginx-selfsigned.crt; ssl_certificate_key /root/cert/certificates/nginx-selfsigned.key;  location / { proxy_set_header ssl-hash $ssl_client_fingerprint; proxy_set_header ssl-cert $ssl_client_cert; proxy_set_header ssl-raw-cert $ssl_client_raw_cert; proxy_pass http://127.0.0.1:3128; }} 

Я попытался передать переменную моему приложению go, но заголовок пуст.

server { listen 8014; server_name localhost;  ssl on; ssl_certificate /root/cert/certificates/nginx-selfsigned.crt; ssl_certificate_key /root/cert/certificates/nginx-selfsigned.key; location / { root /opt/hthash; index index.html index.htm index.php; autoindex on; }  error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }  location ~ \.php$ { root /opt/hthash; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SSL_CLIENT_CERT $ssl_client_cert; fastcgi_param SSL_CLIENT_RAW_CERT $ssl_client_raw_cert; fastcgi_param SSL_CLIENT_FPRINT $ssl_client_fingerprint; fastcgi_param SSL_CLIENT_SERIAL $ssl_client_serial; include fastcgi_params; }} 

Также пытался с FastCGI PHP, но до сих пор не повезло.

Кто-нибудь может сказать мне, как получить сертификат клиента HTTP предпочтительно с помощью обратного прокси-сервера или любого другого решения?

Любая помощь будет высоко оценена.

0

1 ответ на вопрос

1
Daniel B

Не указывая ssl_verify_clientнигде, ваш сервер не запрашивает у клиента сертификат. Это означает, что нет ни одного.

Вам нужно установить его либо on(сертификат требуется), optional(сертификат запрошен, но не требуется) или optional_no_ca(сертификат запрошен, но не требуется; также не проверен).

Похожие вопросы