как передать отпечаток пальца пользователя из nginx в блестящий - PullRequest
0 голосов
/ 23 февраля 2019

Я запускаю сервер глянцевый за обратным прокси-сервером nginx, чтобы добавить слой SSL в свои приложения.Все блестящие пользователи имеют сертификаты X509, выданные для безопасного доступа.Я хотел бы передать отпечаток сертификата X509, используемого от nginx, в блестящее приложение в качестве параметра, чтобы определить, кто именно подключен, и, таким образом, дифференцировать поведение приложения на основе этого.В частности, я покажу только соответствующие данные для этого пользователя.Я заставил его работать с конфигурацией nginx ниже, добавив отпечаток сертификата во время перенаправления из / в / расположение приложения, что далеко не идеально с точки зрения безопасности. Есть ли лучший способ добавить отпечаток пальца к параметрам запроса?

server {
    listen 8789 ssl;
    server_name my.server.name;

    ssl_certificate /etc/nginx/ssl/my.server.crt;
    ssl_certificate_key /etc/nginx/ssl/my.server.key;
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    ssl_client_certificate /etc/nginx/ssl/ca.shiny.crt;
    ssl_verify_client on;
    ssl_crl /etc/nginx/ssl/db/shiny/crl.shiny.pem;

    access_log /var/log/nginx/shiny.access.log;

    location /app/ {
      proxy_set_header        Host $host:8789;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_pass          http://localhost:3838;
      proxy_read_timeout  90;
      proxy_redirect      http:// https://;
    }

   location / {
      set $token '?crt=';
      return 302 https://my.server.name:8789/app/$token$ssl_client_fingerprint;
   }
}
...