質問: httpのみのクライアントを使用してhttpsサービスに接続します 次のようなもので呼び出される単純なコマンドラインクライアントはありますか?http2https --listen localhost:80 --connect example.com:443 これにより、実際にhttps://example.comに接続することで、http://localhostに効果的に接続できるようになりますか? windowsで動作する必要があります。stunnelを試しましたが、機能しないようです。更新:これがstunnel.exe -c -r google.com:443 -d 127.0.0.1:8888の出力ですno limit detected for the number of clients stunnel 4.56 on x86-pc-msvc-1500 platform compiled/running with openssl 1.0.1e-fips 11 feb 2013 threading:win32 sockets:select,ipv6 ssl:engine,ocsp,fips reading configuration from file -c cannot read configuration syntax: stunnel [ [-install | -uninstall] [-quiet] [<filename>] ] | -help | -version | -sockets <filename> - use specified config file -install - install nt service -uninstall - uninstall nt service -quiet - don't display a message box on success -help - get config file help -version - display version and defaults -sockets - display default socket options server is down
回答: これが私が望むことをするnode.jsスクリプトです:var http = require('http'); var https = require('https'); http.createserver(function (req, resp) { var h = req.headers; h.host = "www.example.com"; var req2 = https.request({ host: h.host, port: 443, path: req.url, method: req.method, headers: h }, function (resp2) { resp.writehead(resp2.statuscode, resp2.headers); resp2.on('data', function (d) { resp.write(d); }); resp2.on('end', function () { resp.end(); }); }); req.on('data', function (d) { req2.write(d); }); req.on('end', function () { req2.end(); }); }).listen(9999, "127.0.0.1"); console.log('server running at http://127.0.0.1:9999/'); ホストとローカルポートは両方ともハードコードされていますが、コマンドラインパラメーターにするのは簡単です。