nginx로 HTTP를 프록시할 때 인증서 확장에 제한 적용

nginx로 HTTP를 프록시할 때 인증서 확장에 제한 적용

저는 HTTP와 통신하는 애플리케이션에 대해 HTTPS를 처리하기 위해 역방향 프록시로 nginx를 사용하고 있습니다. 지금까지는 훌륭하게 작동하고 있지만 이제 업스트림 서버에서 수락하는 인증서 종류를 제한할 수 있어야 합니다. 일반적인 확인 확인 외에도 이름 제약 조건이나 정책 매핑이 있는 모든 인증서를 거부할 수 있어야 하고, 특정 확장이 중요하다고 표시된 경우 인증서를 거부할 수도 있어야 합니다.

verify_callbackopenssl에서는 이것이 다음을 사용하여 달성될 수 있다고 믿습니다.SSL_CTX_set_verifyx509 확장을 가져오고 현재/중요한 것이 무엇인지 확인합니다.

하는 것이 가능하니:

a) nginx 구성에서 인증서 확장에 대해 이러한 종류의 제한을 설정합니까? 그것은 것 같다ngx_http_ssl_moduleopenssl에 일부 구성 옵션을 전달하는 데 사용되는 지시문이 있지만 ssl_conf_command이것이 역방향 프록시와 관련이 있는지 또는 "사용자 정의" 인증서 유효성 검사가 가능한지 확실하지 않습니다.

또는

b) 업스트림에서 받은 인증서에 대해 추가 확인을 수행하고 실패할 경우 연결을 끊을 수 있는 사용자 정의 모듈을 작성하시겠습니까? 나는 모듈이 어떻게 작동하는지 잘 알지 못하므로 이것이 잠재적인 해결책이라면 어떤 조언이라도 감사하겠습니다.

또는

c) 이를 달성하기 위해 openssl 구성 파일을 수정하시겠습니까? 아마도 openssl 수준에서 이러한 제한 사항을 설정하고 nginx를 전혀 변경할 필요가 없을 수도 있습니다.

내 구성 파일의 관련 부분은 다음과 같습니다.

http {

  keepalive_timeout  65;
  access_log  nginx_access.log;

  server {

    listen 12312;

    location / {
      ...
      proxy_pass https://<ip_address_of_upstream_server>;
      proxy_redirect https://<<ip_address_of_upstream_server>> http://localhost:12312;
      proxy_ssl_certificate certs/client-cert.pem;
      proxy_ssl_certificate_key certs/client-key.pem;
      proxy_ssl_trusted_certificate  certs/root.pem;
      proxy_ssl_verify on;
      ...
    }
  }
}

감사해요!

관련 정보