CONNECT 터널을 사용하지 않고 FreeBSD의 프록시에 HTTPS 체계 요청을 어떻게 전달할 수 있나요?

CONNECT 터널을 사용하지 않고 FreeBSD의 프록시에 HTTPS 체계 요청을 어떻게 전달할 수 있나요?

고객() 프록시를 통해() 서버에 접속(에스):

A --http--> P --https--> S

요청 내용을 조사하려면 프록시가 필요합니다. 이에 대한 두 가지 옵션이 있습니다.

  1. SSL 터널 차단:CONNECT사이에 SSL 터널을 생성하라는 요청을 보냅니다 .그리고에스그러나 프록시는 SSL 터널을 가로채서 중단하여 신뢰할 수 있는 내부 CA가 서명한 인증서를 즉석에서 생성합니다.악수를 완료합니다.
  2. 클라이언트는 https://구성표 를 사용합니다.:터널을 생성하지 않고 단지 HTTPS URL을 프록시에 전달하고(HTTP URL과 마찬가지로) 프록시는 터널에서 HTTPS URL을 가져오는 작업을 담당합니다.에스HTTPS를 사용하여 다음으로 전달합니다.명확한 HTTP로.

내 생각엔 서로간의 소통이그리고이미 보안을 위해 SSL 차단을 설정하는 것은 의미가 없다고 생각합니다. 설정에는 시간이 많이 걸리고, 자체 제작 CA를 클라이언트의 루트 CA에 삽입해야 하며, 쓸모 없는 핸드셰이크 및 암호화를 처리하기 위해 컴퓨팅 리소스를 낭비합니다. . 대조적으로, 두 번째 옵션은 간단하며 CONNECT프록시 사용을 완전히 비활성화할 수 있습니다.

손쉬운 수동 테스트를 통해 내 오징어 설치가 제대로 작동하고 두 번째 옵션을 올바르게 지원한다는 것을 알 수 있습니다. telnet구성표를 프록시에 전달하여 문서를 성공적으로 검색할 수 있습니다.https://

그러나 고객FreeBSD에서는 클라이언트 소프트웨어가 동일한 방식으로 작동하도록 지시하는 방법을 찾지 못했습니다.

에서 관련 옵션을 찾지 못했습니다 fetch. .wget

나도 이것을 시도했고 curl이것이 설명되는 것 같습니다-p/--proxytunnel을 제외한 모든 작업은 HTTP를 통해 수행됩니다.사용되지만 이 옵션이 없어도 여전히 HTTPS 연결을 위한 터널을 생성하려고 시도합니다. 또한 --no-proxytunnel동일한 맨페이지에 따르면 일부 부울 옵션이 이 구문을 허용하지만 행운이 없기 때문에 시도하는 것을 포함하여 이 옵션을 사용해 보았습니다 . 프록시 터널은 라인 5635에서 시행되는 것 같습니다.라이브러리/url.c(범죄):

/*************************************************************
 * If the protocol is using SSL and HTTP proxy is used, we set
 * the tunnel_proxy bit.
 *************************************************************/
if((conn->given->flags&PROTOPT_SSL) && conn->bits.httpproxy)
  conn->bits.tunnel_proxy = TRUE;

FreeBSD 기본 시스템의 도구를 사용하든 리포지토리에서 사용 가능한 일부 잘 알려진 클라이언트를 사용하든 모든 솔루션을 환영합니다!

관련 정보