다음과 같은 경우:
특정 IP가 액세스할 수 있도록 nginx를 구성해야 합니다. 그렇지 않으면 해당 인증서가 필요합니다.
server {
. . .
ssl_verify_client optional;
location /admin {
allow XXX.XXX.XXX.XXX;
if ($ssl_client_verify != SUCCESS) {
return 403;
}
deny all;
}
}
IP에 대해 작동하지만 위치 if 조건 내부에 인증서를 추가하려고 하면 물론 IP가 있는 워크스테이션에 인증서가 없기 때문에 403 오류가 발생합니다. X OR Y를 구할 수 있는 방법이 있나요?
감사해요!
편집하다:
더러운 방법으로 해결했습니다 ...
location /admin {
set $var_cert 0;
if ($ssl_client_verify = SUCCESS) {
set $var_cert 1;
}
if ($remote_addr = XXX.XXX.XXX.XXX) {
set $var_cert 1;
}
if ($remote_addr = XXX.XXX.XXX.XXY) {
set $var_cert 1;
}
if ($var_cert = 0){
return 403;
}
proxy_pass http://172.16.0.54/admin;
}
글쎄, 작동합니다.