我正在开发一个登录到本地无线路由(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/emailAddress=support@linksys.com':
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'.

在 node 中,捕获的错误是:

{ [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做的相当于"无支票证书"?

推荐答案

廉价且不安全的回答:

添加

process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;

在代码中,在拨打https.request()之前

question个问题回答了一种更安全的方式(上面的解决方案使整个 node 进程不安全)

Node.js相关问答推荐

如何使用Node.js、Express和Mongoose创建多个API

购物车是空的状态|本地存储不更新产品数量|Redux|

如何在Reaction应用程序中查看存储的斑点图像?

无法从MongoDB文档中保存的对象数组中获取对象的属性

将图像添加到多个产品的条带 checkout 会话中

几个 lambda 共有的函数

TypeScript Eslint警告了一个AWS客户端构造函数(dynamodb),但没有警告另一个(s3)

如何在 JavaScript 中显示多维数组中使用的一维数组的变量名?

在系统启动时启动本地 node 服务器

如何解决 npm install react-select failure with error : An unknown git error occurred, git@github.com :Permission denied (publickey)

一个非常奇怪的JavaScript heap out of memory问题

如何申请在NextJS上下载文件的许可?

从 Node.js 应用程序查询 Heroku 托管的 Postgres 数据库时出现自签名证书错误

使用 Webpack 和 font-face 加载字体

NODEJS 进程信息

代理(如提琴手)可以与 Node.js 的 ClientRequest 一起使用吗

npm package.json 操作系统特定脚本

Express.js:没有这样的文件或目录

Node应用程序中相同npm包的两个版本

node.js 异步库