我只需要启用客户端证书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; }