HTTPS에 대해 SSH 포트 전달을 수행하는 방법은 무엇입니까?

HTTPS에 대해 SSH 포트 전달을 수행하는 방법은 무엇입니까?

다음 포트 포워딩을 만들었습니다.

ssh -vL localhost:4433:example.com:443 remote-linux-host

참고: 나는 그것을 피 4433하지 않고 로컬로 사용하고 있습니다 .443sudo

https://localhost:4433/그러나 인증서 확인을 무시한 후 로 이동하면 다음 오류가 발생합니다(Chrome 및 Firefox에서).

404 찾을 수 없음

다음을 사용할 때도 마찬가지입니다 curl.

$ curl -s https://localhost:4433/ | html2text
<?xml version="1.0" encoding="iso-8859-1"?>
****** 404 - Not Found ******

HTTPS에 대한 포트 전달을 수행하는 방법은 무엇입니까?

내 목표는 원격 서버를 통해 내 로컬(포트 4433)에서 여는 것입니다 https://example.com/(HTTPS를 통해 제대로 작동함).

답변1

example.com이 93.184.216.34라고 가정합니다.

방법 중 하나는 다음과 같습니다.

하다:

ssh -L 4433:93.184.216.34:443 remote-linux-host

/etc/hosts브라우저를 사용하여 로컬 머신에서 정의합니다.

127.0.0.1 example.com

그런 다음 브라우저에서 엽니다.https://example.com:4433/

이렇게 하면 올바른 Host헤더가 전송됩니다.

호스트 항목을 생성한 후 브라우저/확인자 DNS 캐시에 유의하세요.

답변2

호스트 이름, SSL 인증서 등을 충족하려면 이 -D옵션을 사용하여 동적 SOCKS4/5 프록시를 생성할 수 있습니다.

ssh -D 4444 username@ssh-hostname

그런 다음 로컬 컴퓨터에 Firefox/chrome을 설정하여 해당 프록시를 사용하세요.

관련 정보