Nginx Proxy_pass를 IP로 전달하지만 HTTPS를 사용합니다.

Nginx Proxy_pass를 IP로 전달하지만 HTTPS를 사용합니다.

에 대한 SSL 인증서를 통해 보호되는 레거시 서버가 있습니다 example.com. proxy_pass특정 (레거시) 트래픽 에 대해 이 서버 앞에 다른 서버를 배치하고 싶습니다 . 새 서버 example.com도 노출되어야 합니다.

legacy.example.com이것이 별도의 도메인( 및 ) 에 있다면 example.com간단하게 을 수행할 수 있습니다 proxy_pass https://legacy.example.com. 그러나 레거시 앱은 하드코딩된 example.comURL로 가득 차 있습니다(그리고 에 대한 SSL 인증서만 있습니다 example.com). 다른 모든 URL(예: IP)은 로 리디렉션됩니다 example.com.

내가 하고 싶은 것은 proxy_pass <legacy IP>호스트 헤더를 proxy_set_header Host example.com. 하지만 문제는 이것이 HTTPS를 사용하지 않는다는 것입니다.

나는 컬을 사용하여 얼마 전에 작업을 수행했으며 IP로 서버에 연결할 수 있었지만 인증서에 사용할 도메인을 지정했습니다. 이 IP에 매핑한 A기록이 없는데도 example.com해당 도메인으로 연결되어 있는 것처럼 속일 수 있었습니다.

curl https://example.com/path --resolve example.com:<IP>

Nginx에 이런 것이 있나요?

답변1

나는 그것을 직접 사용하지 않았지만 proxy_ssl_name당신이 찾고 있는 것일 수도 있습니다:

예를 들어:

proxy_set_header Host example.com;
proxy_ssl_name        example.com;
proxy_pass            https://1.2.3.4;

보다이 문서자세한 내용은.

관련 정보