私は、ローカルのワイヤレス ルーター (Linksys) にログインする小さなアプリを開発していますが、ルーターの自己署名 SSL 証明書で問題が発生しています。
wget 192.168.1.1 を実行すると、次の結果が得られました。
ERROR: cannot verify 192.168.1.1's certificate, issued by `/C=US/ST=California/L=Irvine/O=Cisco-Linksys, LLC/OU=Division/CN=Linksys/[email protected]':
Self-signed certificate encountered.
ERROR: certificate common name `Linksys' doesn't match requested host name `192.168.1.1'.
To connect to 192.168.1.1 insecurely, use `--no-check-certificate'.
ノードでは、キャッチされるエラーは次のとおりです。
{ [Error: socket hang up] code: 'ECONNRESET' }
現在のサンプルコードは次のとおりです。
var req = https.request({
host: '192.168.1.1',
port: 443,
path: '/',
method: 'GET'
}, function(res){
var body = [];
res.on('data', function(data){
body.push(data);
});
res.on('end', function(){
console.log( body.join('') );
});
});
req.end();
req.on('error', function(err){
console.log(err);
});
node.js で「--no-check-certificate」と同等のことを実行するにはどうすればよいでしょうか?
ベストアンサー1
安っぽくて不安な答え:
追加
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
コード内で、呼び出す前にhttps.request()
より安全な方法(上記の解決策ではノードプロセス全体が安全ではない)は、次の方法で回答されます。質問