ssh-tunnelを介して(svnリポジトリの)httpsトラフィックを再ルーティングできますか?
問題は、次のようにリッスンするためのトンネルを1つだけ作成すると、httpsを使用するサービスが機能しないことです。
ssh -L 12345:server.com:443 localhost
他に何かする必要がありますか?目的は、https://PROJECT.googlecode.com/svn/をトンネルすることです。ここで、PROJECTはプロジェクト名です。
ssh-tunnelを介して(svnリポジトリの)httpsトラフィックを再ルーティングできますか?
問題は、次のようにリッスンするためのトンネルを1つだけ作成すると、httpsを使用するサービスが機能しないことです。
ssh -L 12345:server.com:443 localhost
他に何かする必要がありますか?目的は、https://PROJECT.googlecode.com/svn/をトンネルすることです。ここで、PROJECTはプロジェクト名です。
回答:
HTTPS接続はSSHポート転送を介してリダイレクトできますが、SSL / TLS証明書の検証はホスト名が一致しないなどの場合に失敗します。
https:// localhost:12345に接続していますが、サーバー証明書にはserver.comという名前が含まれています。
HTTPS接続を直接転送する代わりに、SSH接続を開いているリモートコンピューターでHTTP(s)/ SOCKSプロキシを実行します。次に、ポートフォワーディングを介してこのプロキシを使用するようにトンネリングするプログラムを設定します。これはクリーンなソリューションになります。
更新:SVNはHTTPプロキシを使用できますが、SOCKSプロキシは使用できないようです。そうする場合は、ローカルシステムに追加の「socksifier」が必要です。Serverfault.comを参照してください:sshトンネルを使用してsubversionのプロキシを設定するにはどうすればよいですか?
SSHトンネルを使用してリモートサーバーにアクセスしているときに、証明書のDNSの不一致の問題を回避できるようにするために、次のことを行いました。
(L443 : <remote.server.com>:443 )
C:\Windows\System32\drivers\etc\hosts
ようなエントリを追加するためにファイルを更新します127.0.0.1 <remote.server.com>
<remote.server.com>
システムプロキシからホストをバイパスします。https://<remote.server.com>