web-dev-qa-db-ja.com

標準のsshプログラムでsshトンネルを介してhttpsトラフィックをトンネルすることは可能ですか?

Ssh-tunnelを介して(svnリポジトリの)httpsトラフィックを再ルーティングできますか?.

問題は、次のようにリッスンするためのトンネルを1つだけ作成すると、httpsを使用するサービスが機能しないことです。

ssh -L 12345:server.com:443 localhost

他に何かする必要がありますか?目的は、トンネルを作成することです https://PROJECT.googlecode.com/svn/ ここで、PROJECTはプロジェクト名です。

12
Juha

HTTPS接続はSSHポート転送を介してリダイレクトできますが、ホスト名が一致しないなどの場合、SSL/TLS証明書の検証は失敗します。

https:// localhost:12345 に接続していますが、サーバー証明書にserver.comという名前が含まれています。

HTTPS接続を直接転送する代わりに、SSH接続を開いているリモートコンピューターでHTTP/SOCKSプロキシを実行します。次に、ポートフォワーディングを通じてこのプロキシを使用するようにトンネルするプログラムを設定します。これはクリーンなソリューションになります。

更新:SVNはHTTPプロキシを使用できますが、SOCKSプロキシは使用できないようです。そうする場合は、ローカルシステムに追加の「socksifier」が必要です。参照 Serverfault.com:どうすればsshトンネルでSubversionのプロキシを設定できますか?

12
Robert

SSHトンネルを使用してリモートサーバーにアクセスしているときに、証明書のDNSの不一致の問題を回避できるようにするために、次のことを行いました。

  1. ローカルポート443がトラフィックをリモートサーバーに転送するようにPuTTYでSSHトンネルを構成します(L443 : <remote.server.com>:443 )
  2. C:\Windows\System32\drivers\etc\hostsファイルを更新して、127.0.0.1 <remote.server.com>などのエントリを追加します
  3. HTTPプロキシサーバーを使用している場合(たとえば、企業プロキシから作業している場合)、システムプロキシから<remote.server.com>ホストをバイパスします
  4. これで、https://<remote.server.com>を使用してリモートサーバーのURLにアクセスできます
1
KunalP