localhost:8000
で動作する小さなプロキシサーバーを作成しましたが、特定のURLのコンテンツを置き換え、他のURLはそのまま残しておきます。ローカルプロキシサーバーでhttpsをサポートするにはどうすればよいですか?
現在、Example Domain
をexample.com
ページのHello World!
に置き換えています。これを構築するために私はproxy-tamper
パッケージを使用しました。私が使用するプロキシサーバを開始し、その後
"use strict";
const proxy = require('proxy-tamper').start({port: 8000});
// block share-term.me
proxy.tamper(/share-term.me\/$/, 'This content is blocked!');
// Replace the content on example.com
proxy.tamper(/example.com\/$/, request => {
delete request.headers['accept-encoding'];
request.onResponse(response => {
response.body = response.body.replace(/Example Domain/g, 'Hello World!');
response.headers['server'] = 'proxy-tamper 1337';
response.headers['content-length'] = response.body.length;
response.complete();
});
});
:
node proxy-server.js
をそして最後に、--proxy-server
オプションを設定することで、google-chrome-stable
を開始
コードは、この(proxy-server.js
に保存されている)のように見えます:
google-chrome-stable --proxy-server='http=http://localhost:8000;https=http://localhost:8000' http://domain.com
これはhttp://example.com
ですが、https://example.com
で失敗します。実際にはhttps
をサポートしていません。
私はhttp://example.com
を開いたとき、私は交換したコンテンツを参照してください。
をしかし、私はhttps://example.com
(または任意のhttps
URL)を開いたとき、それはERR_EMPTY_RESPONSE
で終わる、失敗:
私のプロキシサーバーにhttps
のサポートを追加するにはどうすればいいですか、または少なくともhttps
のURLをhttp
に迂回させるにはどうすればよいですか?
--ignore-certificate-errors
と--allow-insecure-content
を使用してChromeプロセスを実行しようとしましたが、役に立たなかった。
私は強いhttps関連のセキュリティを持っていることに主眼を置いているわけではありませんが、私は自分のサーバーからこれらのhttpsリクエストをプロキシし、クライアントで応答を送信したいと考えています。
私は 'http-proxy'を試しましたが、回答コンテンツを変更する簡単な解決策がないことを[ここ](https://github.com/nodejitsu/node-http-proxy/issues/382)で読んでいました。何か案は? –
@IonicăBizău私はチェックする必要があります、私はあなたに戻ってみましょう。サーバー側では可能ですが、パッケージ自体を編集することなくコンテンツの変更をパッケージがサポートしていない可能性があります。 – Dandy
私は、HTTPSをサポートしているプロキシサーバーの最小限の例がある限り、パッケージを変更して拠出することに満足しています。 –