Condicional ssl_verify_client em NGINX

3

Eu preciso ativar a verificação de certificado de cliente somente para solicitações de fora de nossa intranet sem verificação de solicitações de, por exemplo, 192.168.0.0/24. Eu tentei usar geo module para definir variável para sub-rede interna. Em http contexto:

geo $intranet { 
  default 0; 
  192.168.0.0/24 1; 
}

Em server contexto

if ($intranet != 1) { 
  ssl_verify_client on; 
} 

mas é impossível usar a diretiva ssl_verify_client dentro da instrução if . Eu recebo um erro:

"ssl_verify_client" directive is not allowed here

Existe outra maneira de fazer isso?

    
por maksek 05.12.2016 / 15:38

1 resposta

0

Finalmente, encontrei a solução que funciona como esperado.

Em http contexto:

geo $intranet { 
  default 0; 
  192.168.0.0/23 1; 
}

Em server contexto:

ssl_verify_client optional;

set $verify $intranet$ssl_client_verify;

if ($verify ~ (0NONE|0FAILED)) {
  return 403;
}
    
por 21.09.2017 / 20:26