SSL 터미네이터 뒤의 포트 443에서 Apache로 http 제공

SSL 터미네이터 뒤의 포트 443에서 Apache로 http 제공

우리 네트워크 운영 담당자가 SSL 종료를 설정한 다음 요청을 역방향 프록시로 설정했습니다. 그들의 요구 사항은 포트 443에서 입력을 본 경우 포트 443에서 콘텐츠를 제공해야 하므로 포트 443에서 암호화되지 않은 콘텐츠를 제공한다는 것입니다. 이는 우리가 해결해야 할 불변입니다.

대부분의 경우 이는 문제가 되지 않습니다. 우리 Listen 443는 SSL을 설정하지 않았으며 리디렉션을 제외하고는 작동합니다.

예를 들어, 다음과 같이 정의하면:

Alias /foo /path/to/foo
<Directory /path/to/foo>
    ...
</Directory>

Apache는 요청을 로 리디렉션할 만큼 똑똑 /foo합니다 /foo/. 포트 80에서 http를 사용하면 훌륭하게 작동합니다. 그러나 클라이언트가 포트 443에서 https를 사용하는 경우 Location다음과 같은 리디렉션이 발생합니다 .

Location: http://my.example.com:443/foo/

문제는 우리가 보안 프로토콜에서 안전하지 않은 프로토콜로 리디렉션하고 싶지 않다는 것입니다. 포트 443에서 안전하지 않은 콘텐츠를 제공하지 않기 때문에 중요한 것은 아닙니다.

이 요청이 원래 보안 요청이었다는 것을 Apache에 알리는 더 좋은 방법이 있을 것 같지만 Apache 구성에 대해서는 잘 모릅니다. 각 항목에 대한 리디렉션을 수동으로 생성할 필요가 없기를 바랍니다 Directory. 특히 일부 콘텐츠는 보안 형식과 안전하지 않은 형식 모두에서 사용할 수 있기 때문입니다.

도움이 될 수 있는 문서에 대한 조언이 있는 사람이 있나요(불행히도 도움을 줄 수 있는 올바른 Google 주문을 생각해낼 수 없습니다). 이를 처리하는 가장 좋은 방법에 대한 조언도 높이 평가되었습니다. :)

답변1

이 시나리오는 설명서에 설명되어 있습니다.서버 이름:

때때로 서버는 역방향 프록시, 로드 밸런서 또는 SSL 오프로드 어플라이언스와 같은 SSL을 처리하는 장치 뒤에서 실행됩니다. 이 경우 서버가 올바른 자체 참조 URL을 생성하는지 확인하기 위해 ServerName 지시문에 https:// 체계와 클라이언트가 연결하는 포트 번호를 지정합니다.

이 작업을 수행하고 포트 80을 동시에 작동시키려면 그 중 적어도 하나에 VirtualHost를 사용해야 하므로 별도의 ServerName을 추가할 수 있습니다.

관련 정보