백엔드 서비스에 대한 TLS 연결을 설정하는 클라이언트가 있습니다.
제가 겪은 상황은 두 가지입니다.
이 환경에서는 다음 코드와 같이 클라이언트가 서버에 직접 연결됩니다.
이 환경에서 클라이언트는 http 프록시 뒤에 있으며 클라이언트는 프록시 http 터널을 활용하여 클라이언트와 서버 간에 트래픽을 전달해야 합니다.
클라이언트 측에서 golang.org/x/net/proxy
를 사용하여 프록시에 연결합니다. 프록시는 http 프록시이므로 클라이언트는 net.dialer를 사용하여 tcp를 통해 프록시에 연결해야 합니다.
사례 1, 클라이언트는 네트워크 트래픽 패킷에서 tls 연결을 시작합니다. 3번의 핸드셰이크 후에 클라이언트는 client hello
를 서버로 보냅니다.
케이스 2의 경우 클라이언트는 먼저 tcp를 사용하여 http 프록시(예: 10.0.0.1:8080)에 연결하고, 다음으로 프록시에 connect
를 보낸 다음 프록시가 connectionowned를 반환합니다.
, 그러나 클라이언트는 connect
到代理,然后代理返回connectionestablished
,但是客户端不发送client hello
를 서버로보냅니다.
case2의 경우 클라이언트 측에서 전송을 구현하는 방법과 위치를 모르겠습니다 client hello
?
미리 감사드립니다.
go doc을 검색한 후 해결책을 찾았습니다. 나중에 비슷한 문제를 겪는 사람들에게 도움이 되길 바랍니다.
tls
에는 기존 네트워크에서 구축할 수 있는 client 기능이 있습니다. Conn, 그럼 Handshake
위 내용은 http 프록시 터널을 통해 Client Hello를 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!