
연결 클라이언트를 인증하기 위해 상호 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
아니요, 그렇게 할 수는 없습니다. 연결을 종료하고 종단 간을 유지할 수는 없습니다.
하지만 만약 당신이신뢰하다프록시를 사용하는 경우 프록시는 헤더를 삽입하고 자체 클라이언트 인증서를 사용하여 해당 연결이 신뢰할 수 있고 지정된 클라이언트 인증서에 의해 시작되었음을 인증할 수 있습니다.