web-dev-qa-db-ja.com

WebアドレスにHTTPSを経由させる

私の仕事では、 http://Twitter.com はブロックされていますが、 https:// Twitter はブロックされていません。 HTTPの代わりにHTTPSプロトコルを使用してすべてのプログラム/ブラウザにこのURLにアクセスさせる方法はありますか?

これは特に、サイトにアクセスする必要があるサードパーティのクライアントに関連していますが、通常はHTTPにハードコードされており、変更するオプションはありません。

更新:以下に示すようにフィドラースクリプトを作成しようとしましたが、正しく実行できませんでした。スクリプトを使用した回答が最も役立ちます。または、完全にアクセスすることで構成される別の方法です。

7
dancramer

すべてのサードパーティアプリケーションが実際にプロキシ設定を考慮に入れるのだろうか。または、システム全体のプロキシ設定を変更すると、他のアプリケーションに干渉する可能性がある場合。 (インターネットアクセスに会社のプロキシが必要な場合と同様に、Twitter.comのトラフィックをリダイレクトするためだけに変更することはできません。)幸い、アプリケーションがHTTPSを使用しない場合、中間者を見つけることができません。 。したがって、 DeleGate を使用して、ポート80でTwitter.comのman-in-the-middleを設定します。

次の手順は、完全な管理者権限を持つアカウントを使用して、Mac OS X10.6およびWindowsXPでテストされています。

  1. ダウンロード DeleGate。 1990年代のホームページに騙されないでください。プログラムはまだ維持されています。

  2. HTTPリクエストのHostヘッダーの値に基づいて、ポート80(および443)上のすべてのローカルリクエストをHTTPSサーバーに転送するようにDeleGateに指示します。 Intel上のMacの場合と同様(1024未満の特権ポートを使用するにはSudoが必要です):

    Sudo ./macosxi-dg -v -P80,443 \
    SERVER=https \
    RELAY=vhost \
    RESOLV=cache,dns \
    STLS=-fcl,fsv \
    [email protected]
    

    Windowsの場合、c:\に解凍した場合:

    cd c:\dg9_9_4\bin
    dg9_9_4.exe -v -P80,443 SERVER=https RELAY=vhost RESOLV=cache,dns STLS=-fcl,fsv [email protected]
    

    インターネットアクセスに会社のプロキシを使用する必要がある場合、コマンドラインにPROXY=proxy.example.com:8080のようなものを追加すると、DeleGateはそれを喜んで使用します。

  3. /etc/hostsファイル(WindowsXPではc:\windows\system32\drivers\etc\hosts、他のOSではWikipedia 場所について を参照)に次の行を追加して、Twitter.comに対するすべての要求をに送信します。自分のコンピューター。ドメイン名からIPアドレスへのマッピングでは、プロトコルが考慮されていないことに注意してください。つまり、これはHTTPだけでなく、HTTPS(およびpingなどのコマンドなど)にも使用されます。

    127.0.0.1 Twitter.com
    
  4. ブラウザがnotプロキシサーバーを使用するように設定されていることを確認するか、例外としてTwitter.comを追加してください。ブラウザがTwitterのIPアドレスをキャッシュしている場合に備えて、再起動することをお勧めします。

  5. さて、 http://Twitter.com 実際にあなた(そしてあなたのすべてのアプリケーション)をhttps://Twitter.comにします。


出力は、実際にHTTPSサイトがhttps://Twitter.comから要求されていることを示しています。

REQUEST - GET / HTTP/1.1
REQUEST = https://Twitter.com:443/ GET / HTTP/1.1
[..]
ConnectToServer connected [16] {168.143.161.20:443 <- 192.168.1.68:57067}
## SSLway -- TLSxSNI: sent ru=0 ty=0 nm=localhost
## SSLway ## 0.459622 connected/accepted
## SSLway server's cert. = 
  **subject /
  C=US/
  O=Twitter.com/
  OU=GT09721236/
  OU=See www.rapidssl.com/resources/cps (c)09/
  OU=Domain Control Validated - RapidSSL(R)/
  CN=Twitter.com
  **issuer /
  C=US/
  O=Equifax Secure Inc./
  CN=Equifax Secure Global eBusiness CA-1


MOUNT="/* https://Twitter.com/*"の代わりにRELAY=vhostを使用すると、http://localhostでも1つのhttps://Twitter.comが得られます。

Twitter through DeleGate


https://Twitter.comを使用してHTTPSを明示的に要求すると、信頼できる証明書チェーンが壊れます。HTTPS対応のアプリケーションwill中間者攻撃を検出し、要求できない場合は失敗します。続行する許可を得るには:

Man-in-the-middle


テスト後、Windowsで サービスとして を実行するには、-vパラメーターを削除するだけです。これにより、プログラムがサービスとしてインストールされます。その後、バックグラウンドで実行され、起動時に実行するかどうかを尋ねられます。

Trying to start as a service [DeleGate Server -P80,443] ...
Set Automatic Start on System Startup ? [y] / n :

-vパラメータなしで上記のコマンドを実行した後:DeleGateを手動で開始または停止するには、コントロールパネル"管理ツール"サービスを参照してください。このサービスは、最初にdg9_9_4.exeプログラムを開始した場所を参照することに注意してください。したがって、そのプログラムを削除または移動しないでください。将来削除する可能性のあるダウンロードディレクトリへの参照を避けるために、ダウンロードをたとえばc:\dg9_9_4に解凍してください。

サービスを削除するには、-Pパラメーターに同じ値を指定してください。

dg9_9_4.exe -P80,443 [email protected]
[..]
The service `DeleGate Server -P80,443' exists.  Delete it ? [y] / n : y
OK. DELETEd the previous service.
Create a new service ? [y] / n : n


最後に、DeleGateがTwitter.comのIPアドレスをどのように知っているのか不思議に思うかもしれません(hostsファイルで127.0.0.1にマッピングしたため)。 RESOLV=cache,dnsのため、DeleGateは実際にそれ自体を取得します。

MOUNT[5]X[2] /* https://Twitter.com/*  
{R} SOA got [162.143.168.in-addr.arpa][ns1.dn.net]
  [dnsadmin.enterprise.verio.net] 2008121001 10800 3600 604800 86400
8
Arjan

書き換えルール機能を備えたある種のプロキシサーバーが必要です。より良い答えが提供されていない場合は、 Fiddler の修飾子ルールを記述してこれを行うことができると思います。フィドラールールはJavaScriptで記述されており、 オンラインでいくつかの例があります。

編集:このページのEric Lawの回答を参照し、投票してください。

5
crb

Fiddler ルールは非常に単純です。 OnBeforeRequest内に、以下を追加します。

if (oSession.fullUrl.StartsWith("http://Twitter.com/"))
{
    oSession.oRequest.headers.UriScheme = "https";
}
3
EricLaw

VPNを使用し、作業ネットワークからトンネリングすることで、すべての非難を免れることができます。

VPNトンネリングには、論理ネットワーク接続(中間ホップが含まれる場合があります)の確立と維持が含まれます。この接続では、特定のVPNプロトコル形式で構築されたパケットは、他のベースプロトコルまたはキャリアプロトコル内にカプセル化され、VPNクライアントとサーバー間で送信され、最後に受信側でカプセル化が解除されます。

これは、すべてのパケットがインターネット上の仲介者を介して送信されることを意味します。この仲介者は通常、会社のファイアウォールによってブロックされることはなく、すべてのパケットを宛先に転送してから、受信した回答をコンピューターに返します。さらに、VPN接続により、すべてのパケットが双方向でエンコードされ、詮索好きな目から保護されます。

あなたは商用製品から最高のサービスを受けるでしょう、しかしいくつかは無料でそれほど悪くはありません。たとえば、 HTTP-Tunnel Client は非常に優れた製品です。

2
harrymc

無料ではありません ですが、 Charles (Webデバッグプロキシ)には、マップするように指示できるリモート設定のマップ機能がありますhttp://Twitter.comからhttps://Twitter.comGUIを使用して簡単に。サイトから試用版をダウンロードして、ニーズに合っているかどうかを確認できます。

alt text

1
Matthew Lock

Firefoxで Greasemonkey スクリプトを書くことができます。これが FriendFeed の1つです。

編集: スクリプト Twitterの場合。

0
Stephen

Firefoxでは、アドオン Force-TLS が問題に答えているようです。
見積もり:

仕組みは次のとおりです。

  1. HTTPS経由で提供されるサイトx.comは、その応答でヘッダーX-Force-TLSを提供します。ヘッダーには、max-age値(強制TLSを記憶する期間)と、オプションでincludeSubDomainsフラグが含まれます。
  2. ブラウザはこのヘッダーを受け取り、それをForceTLSデータベースに追加します。
  3. 将来、x.comへのリクエストは、リクエストがネットワークに到達する前にHTTP経由で試行された場合、HTTPS経由になるように変更されます。
  4. サブドメイン* .x.comがHTTP経由で要求され、includeSubDomainsフラグが設定されている場合、それらもHTTPSに強制されます。
0
harrymc