IP 및 선택적 클라이언트 인증서를 허용하도록 nginx에서 구성하는 방법

IP 및 선택적 클라이언트 인증서를 허용하도록 nginx에서 구성하는 방법

다음과 같은 경우:

특정 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;


}

글쎄, 작동합니다.

관련 정보