HTTP-Client-Zertifikat var in nginx ist leer?

1211
digiadit

Ich versuche, ein HTTP-Client-Zertifikat in Nginx zu erhalten, das aber immer als leer zurückgegeben wird.

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

Alle oben genannten werden als leer zurückgegeben.

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; }} 

Ich habe versucht, die Variable an meine Go-App zu übergeben, aber der Header ist leer.

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; }} 

Auch mit fastcgi PHP versucht, aber immer noch kein Glück.

Kann mir jemand sagen, wie man das HTTP-Client-Zertifikat vorzugsweise über den Reverse-Proxy oder eine andere Lösung erhält?

Jede Hilfe wird sehr geschätzt.

0

1 Antwort auf die Frage

1
Daniel B

Ohne irgendetwas anzugeben ssl_verify_client, fragt Ihr Server den Client nicht nach einem Zertifikat. Das heißt, es gibt keine.

Sie müssen entweder on(Zertifikat erforderlich), optional(Zertifikat angefordert, aber nicht erforderlich) oder optional_no_ca(Zertifikat angefordert, aber nicht erforderlich; auch nicht überprüft) festlegen.