Squid는 브라우저에 선택한 HTTP URL을 HTTPS로 다시 시도하도록 요청할 수 있습니다. 대상은 이미 해당 리소스를 HTTPS로 제공해야 합니다. Raspberry Pi에서 Squid를 실행한다고 해서 웹사이트에 그 기능이 생기는 것은 아닙니다.

Squid 7의 url_rewrite_program 인터페이스의 경우 helper는 다음과 같은 클라이언트 리디렉션을 반환할 수 있습니다:

OK status=307 url="https://www.example.com/help"

이것은 일치하는 요청에 대한 하나의 예시 helper 응답이며 완전한 helper 프로그램이 아닙니다. 브라우저는 리디렉션을 받고 HTTPS URL로 새 요청을 보냅니다. 업그레이드 정책 밖의 URL은 OK를 받고 변경되지 않은 채 남을 수 있습니다.

HTTPS 지원 대상의 알려진 목록을 사용하고 들어오는 URL을 분석하세요. 의도한 경로와 query를 유지하고 명시적 포트를 고려하며 요청 메서드를 신중하게 다루세요. 모든 http 접두사를 무작정 바꾸면 각 원본에 동등한 HTTPS 서비스가 있다고 가정하는 셈입니다.

helper는 설치된 Squid 버전의 프로토콜에 따라 모든 입력 줄에 응답해야 합니다. 동시 helper 채널이 활성화된 경우 응답에 채널 식별자를 유지하세요. 예전의 맨 301:URL 예시는 현재의 result-and-key/value 형식과 호환되지 않습니다.

브라우저가 새 URL을 알아야 할 때 클라이언트 리디렉션을 선택하세요. rewrite-url 응답은 대신 Squid가 클라이언트의 원래 요청 뒤에서 다른 URL을 가져오도록 하며, 이는 애플리케이션 URL과 상태를 일관되지 않게 남길 수 있습니다.

최초 HTTP 요청은 helper가 리디렉션하기 전에 이미 Squid에 도달했습니다. 이 정책은 그 요청을 소급해 보호할 수 없습니다. TLS는 다음 HTTPS 연결에서 시작됩니다; CONNECT 터널만으로는 어떤 암호화도 제공되지 않습니다.

관련 글