我如何使用nginx的客户端证书身份validation文件夹? location
块中不允许ssl_client_certificate
指令。 例如:我希望我的网站me.tld
可以被所有的客户端和me.tld/secure/
下的所有东西都可以访问,只有通过身份validation的客户端。
我无法亲自尝试,但可以尝试以下操作
您将需要ssl_verify_client optional;
去一边ssl_client_certificate
,然后使用下面的位置块
location /secure { error_page 418 = @other; recursive_error_pages on; if ($ssl_client_verify = SUCCESS) { return 418 } location @other { #Secure Config goes here }
客户端证书将被检查,但不是为所有地点强制执行。 当有人尝试/secure
目录时,nginx会检查$ssl_client_verify
在server
级是否成功。 如果是,它会return
错误418
,我们告诉nginx在@other
位置处理。