https.request で node.js 内の無効な自己署名 SSL 証明書を無視しますか? 質問する

https.request で node.js 内の無効な自己署名 SSL 証明書を無視しますか? 質問する

私は、ローカルのワイヤレス ルーター (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()

より安全な方法(上記の解決策ではノードプロセス全体が安全ではない)は、次の方法で回答されます。質問

おすすめ記事