如何使用自动生成的 SSL 密钥将 HTTPS 请求正确发送到服务器?
How to correctly send HTTPS request to Server using auto-generated SSL keys?
我在 Node.js requests
方面需要一些帮助。
基本上我正在尝试将 HTTPS GET 请求发送到具有自签名证书的服务器。
我正在尝试两种方法,unirest
和 request
模块。
下面是我正在使用的函数:
请求方式:
function sendCommand(command){
request(IP + command, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
return body;
}
else{
console.log(command + " was not sent since an error occured!");
}
});
}
UniRest 方法:
function sendRequest(command){
unirest.get(IP + command)
.end(function(response) {
var body = response.body;
return body;
done();
});
}
在这两种情况下,我总是得到 undefined
return 值,但是服务器在线并且 运行,可以通过以下方式轻松检查:https://3.16.143.68:8080
因为我在 SSH 中连接到服务器,所以我也可以从那里检查服务器状态:
PM2 列表输出:
pm2 列表
┌────────┬──────┬──────┬────────┬────┬──────┬────────── ──┐
│ 名称 │ id │ 模式 │ 状态 │ ↺ │ cpu │ 内存 │
├────────┼──────┼──────┼────────┼────┼──────┼──────── ──┤
│ 服务器 │ 0 │ 分叉 │ 在线 │ 0 │ 0% │ 50.8 MB │
当然浏览器会警告我们证书未签名,但我认为在发送请求时应该不会产生问题,我错了吗?
感谢您的帮助
节点默认启用证书验证。
您可以通过配置环境变量全局禁用它:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
request(IP + command, function (error, response, body) {
// Handle response
});
或者您可以在发出请求时禁用验证:
var opts = {
url: IP + command,
agentOptions: {
rejectUnauthorized: false
}
};
request(opts, function (error, response, body) {
// Handle response
});
我在 Node.js requests
方面需要一些帮助。
基本上我正在尝试将 HTTPS GET 请求发送到具有自签名证书的服务器。
我正在尝试两种方法,unirest
和 request
模块。
下面是我正在使用的函数:
请求方式:
function sendCommand(command){
request(IP + command, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
return body;
}
else{
console.log(command + " was not sent since an error occured!");
}
});
}
UniRest 方法:
function sendRequest(command){
unirest.get(IP + command)
.end(function(response) {
var body = response.body;
return body;
done();
});
}
在这两种情况下,我总是得到 undefined
return 值,但是服务器在线并且 运行,可以通过以下方式轻松检查:https://3.16.143.68:8080
因为我在 SSH 中连接到服务器,所以我也可以从那里检查服务器状态:
PM2 列表输出:
pm2 列表 ┌────────┬──────┬──────┬────────┬────┬──────┬────────── ──┐ │ 名称 │ id │ 模式 │ 状态 │ ↺ │ cpu │ 内存 │ ├────────┼──────┼──────┼────────┼────┼──────┼──────── ──┤ │ 服务器 │ 0 │ 分叉 │ 在线 │ 0 │ 0% │ 50.8 MB │
当然浏览器会警告我们证书未签名,但我认为在发送请求时应该不会产生问题,我错了吗?
感谢您的帮助
节点默认启用证书验证。
您可以通过配置环境变量全局禁用它:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
request(IP + command, function (error, response, body) {
// Handle response
});
或者您可以在发出请求时禁用验证:
var opts = {
url: IP + command,
agentOptions: {
rejectUnauthorized: false
}
};
request(opts, function (error, response, body) {
// Handle response
});