HTTP 아웃바운드의 연결 방식
클라이언트가 먼저 연결할 대상은 server:port 지정된 업스트림 프록시이며, 이어서 HTTP CONNECT 요청을 보내 대상 호스트까지 TCP 터널을 설정합니다. 대상 사이트가 HTTP를 사용하는지 HTTPS를 사용하는지는 여기서 지정하는 노드 유형에 영향을 주지 않습니다.
type: http 기본값은 업스트림 프록시에 평문으로 연결한다는 뜻입니다. 다음을 설정한 경우에만 tls: true클라이언트와 업스트림 프록시 사이 구간에서 TLS를 사용합니다. HTTP 아웃바운드 자체는 UDP 전달을 제공하지 않습니다.
최소 필수 필드
다음 네 항목으로 인증이 필요 없는 최소 HTTP 아웃바운드를 구성할 수 있습니다. 노드 이름은 정책 그룹과 규칙에서 참조하므로 다른 노드와 중복되어서는 안 됩니다.
name필수- 노드 이름입니다. 이후
proxy-groups또는 규칙에서 사용합니다. type필수- 고정값
http。 server필수- 업스트림 HTTP 프록시의 도메인 또는 IP 주소입니다.
port필수- 업스트림 프록시가 수신하는 포트입니다. 포트 번호 자체로 TLS 활성화 여부가 결정되지는 않습니다.
인증 및 CONNECT 요청 헤더
업스트림에서 Basic 프록시 인증을 요구하면 사용자 이름과 비밀번호를 함께 입력하세요.headers CONNECT 요청에 추가되며, 게이트웨이 요구 사항에 따라 기본 Host, User-Agent 또는 Proxy-Connection 등의 요청 헤더를 덮어쓸 수 있습니다.
username필요한 경우- 업스트림 프록시 인증 사용자 이름입니다. 현재 구현에서는 사용자 이름과 비밀번호가 모두 비어 있지 않을 때만 Basic 인증을 전송합니다.
password필요한 경우- 와 함께 사용하는
username프록시 인증 비밀번호입니다. headers필요한 경우- 키-값 형식의 CONNECT 요청 헤더입니다. 대상 웹사이트의 일반 요청 헤더를 여기에 설정하지 마세요.
HTTPS 업스트림 및 인증서 검증
TLS를 켜면 SNI, 인증서 이름 및 인증서 체인은 최종 접속 사이트가 아니라 업스트림 프록시를 대상으로 합니다. 일반적인 환경에서는 인증서 검증을 유지해야 합니다.
tls필요한 경우- 다음 값으로 설정하면
trueTLS로 업스트림 HTTP 프록시에 연결합니다. sni필요한 경우- TLS 핸드셰이크의 서버 이름입니다. 생략하면
server。 name-cert-verify필요한 경우- 인증서 DNSName 검증 대상을 별도로 지정하며 SNI는 변경하지 않습니다.
skip-cert-verify주의- 인증서 검증을 건너뜁니다. 위험을 명확히 이해한 상태에서 일시적으로 문제를 진단할 때만 사용하세요.
fingerprint필요한 경우- 전체 인증서의 SHA-256 지문이며 브라우저 클라이언트 지문이 아닙니다.
certificate / private-key필요한 경우- 두 항목을 함께 입력하면 mTLS가 활성화됩니다. PEM 내용이나 해당 파일 경로를 사용할 수 있습니다.
인증을 사용하는 HTTPS 노드 예시
이 예시는 업스트림 TLS와 Basic 인증을 함께 활성화합니다. 업스트림에 인증이 필요하지 않으면 username 와 함께 사용하는 password을 삭제하고, 업스트림이 평문 HTTP 프록시라면 tls 와 함께 사용하는 sni。
- TLS 핸드셰이크 오류가 발생하면 먼저 업스트림이 실제로 HTTPS 프록시 서비스를 제공하는지 확인하세요.
- 407 Proxy Authentication Required가 발생하면 계정, 비밀번호 및 업스트림에서 허용하는 인증 방식을 확인하세요.
- CONNECT method not allowed가 발생하면 업스트림이 포워드 프록시가 아니거나 CONNECT 메서드를 허용하지 않는 것일 수 있습니다.
proxies:
- name: http-upstream
type: http
server: proxy.example.com
port: 443
username: user
password: pass
tls: true
sni: proxy.example.com