호스트 이름을 기반으로 https 요청을 다른 호스트로 전달하는 방법

호스트 이름을 기반으로 https 요청을 다른 호스트로 전달하는 방법

내 상황:

우분투 서버 3개, NAT 라우터 1개, 도메인 이름 3개, Apache 웹사이트 3개가 있습니다. 두 도메인 Ipadress는 NAT 라우터의 WAN IP입니다. 인터넷의 모든 https 트래픽은 서버 1로 전달됩니다. 모든 서버에는 자신의 웹사이트에 대한 자체 인증서가 있습니다.

누군가 연결을 시도합니다:

요청된 호스트 이름이 웹 사이트 1의 호스트 이름인 경우 서버 1은 웹 사이트 1을 표시합니다. 요청된 호스트 이름이 웹 사이트 2 또는 3에 대한 것인 경우 서버 1은 연결을 서버 2 또는 3으로 전달합니다. 서버 2 또는 3은 웹 사이트 2 또는 3을 표시합니다. .

서버 1에는 서버 2 또는 3에 대한 키가 없다는 점을 기억하십시오.

두 가지 질문이 있습니다.

  1. 중간에 사람처럼 오류가 발생하지 않고 이것이 가능합니까?
  2. 이것이 작동하는 아파치 구성을 편집하는 방법.

연구:

https 요청을 다른 https 호스트로 전달하는 방법을 Google에서 검색했습니다. 대부분의 대답은 서버 1에 모든 공개 인증서와 키가 있다는 것입니다. 서버 2 또는 3에 대한 다른 인증서와 키를 만들어야 합니다. (제 경우에는 자체 서명된 인증서) 하지만 서버 1에 서버 2 또는 3의 개인 키가 있는 것을 원하지 않습니다. 서버 1, 2 또는 3의 공개 IP가 동일하기 때문에 서버 1에 개인 키가 없을 수도 있습니다.

또한 하나의 서버에 서로 다른 인증서를 사용하여 여러 개의 https 가상 호스트를 가질 수 있는 방법도 찾았습니다. 아니요. 모든 서버에는 자체 웹사이트가 있기 때문입니다.

누군가 나를 도와줄 수 있나요?

답변1

이는 Apache를 사용하여 달성할 수 있습니다.역방향 프록시특징. 서버 1의 Apache 구성에서는 VirtualHost서버 2와 3의 사이트에 대한 호스트 이름과 SSL 구성을 사용하여 정의를 생성하고 ProxyPass서버 1을 통해 해당 서버로 다시 연결을 프록시하는 데 사용됩니다.

다른 방법은 세 서버 모두 앞에서 NGINX와 같은 것을 실행하고 HTTP/HTTPS 트래픽을 NGINX로 NAT한 다음 SSL 종료 및역방향 프록시세 서버 모두에 대해.

관련 정보