nginx로 TLS 프록시용 클라이언트 인증서를 재사용하시겠습니까?

nginx로 TLS 프록시용 클라이언트 인증서를 재사용하시겠습니까?

연결 클라이언트를 인증하기 위해 상호 TLS를 사용하는 TCP 애플리케이션이 있습니다.
트래픽이 증가했기 때문에 애플리케이션을 클러스터화하고 nginx를 사용하여 노드의 부하를 분산하고 싶습니다. 나는 이미 stream레이어 4 밸런서 역할을 하는 nginx 모듈을 사용하여 작업하고 있습니다 .

이 시점에서는 mTLS 확인에 실패한 연결 시도를 nginx에서 즉시 삭제하는 것이 타당해 보입니다. 따라서 업스트림 노드는 이를 방해할 필요가 없습니다.
그러나 이는 nginx에서 TLS 연결을 종료해야 함을 의미합니다. 불행하게도 내 응용 프로그램은 확인된 클라이언트 인증서에서 클라이언트의 신원을 얻는 데 의존합니다.

nginx에서 mTLS를 확인한 다음 업스트림 연결에 클라이언트 인증서를 재사용할 수 있는 방법이 있습니까?

HTTP 애플리케이션의 경우 nginx에서 TLS 연결을 종료하고 클라이언트 인증서를 사용자 정의 헤더(예: )로 전달하는 해결 방법을 보았지만 proxy_set_header X-SSL-CERT $ssl_client_cert;내 경우에는 확실히 작동하지 않습니다.

답변1

아니요, 그렇게 할 수는 없습니다. 연결을 종료하고 종단 간을 유지할 수는 없습니다.

하지만 만약 당신이신뢰하다프록시를 사용하는 경우 프록시는 헤더를 삽입하고 자체 클라이언트 인증서를 사용하여 해당 연결이 신뢰할 수 있고 지정된 클라이언트 인증서에 의해 시작되었음을 인증할 수 있습니다.

관련 정보