NGINX中有条件的ssl_verify_client

我只需要启用客户端证书validation,仅用于来自我们内部网之外的请求,而不validation来自例如192.168.0.0/24的请求。 我试图使用geo模块来定义内部子网的variables。 在http上下文中:

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

server环境中

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

但是在if语句中使用ssl_verify_client指令是不可能的。 我收到一个错误:

“ssl_verify_client”指令在这里是不允许的

有没有其他的方法来做到这一点?

最后我find了解决scheme,按预期工作。

http上下文中:

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

server环境中:

 ssl_verify_client optional; set $verify $intranet$ssl_client_verify; if ($verify ~ (0NONE|0FAILED)) { return 403; }