ssl - Sails.js 中的 HTTPS 请求 - 获取“错误:错误:客户端网络套接字在建立安全 TLS 连接之前断开”
问题描述
我正在尝试在 Sails.js 中发出 HTTPS 请求并收到错误:
Error: Client network socket disconnected before secure TLS connection was established
.
我想我缺少要发送的 SSL 文件,但我不确定我是否是,我不确定如何从页面获取它们。
我正在尝试使用该request
库在 Sails.js 中发出 HTTP 请求。
我在 Firefox 中下载了一个网站的 SSL 证书(只有一个.crt
文件)。
我把文件放在 Sails 的assets
目录中。
我在其中创建了一个sails config SSL文件,并在其中从目录config/ssl.js
中导出了SSL证书文件。assets
我创建了一个控制器,导入 SSL 配置对象并将其放入请求的agentOptions
属性中。
注意:我没有sailshttp
文件。我需要吗?当我使用sails new <app name>
.
SSL证书文件路径:assets/wwwoldhealthgovil.crt
SSL 配置文件,位于config/ssl.js
(正确读取,可以console.log
在控制器中):
const path = require('path');
const fs = require('fs');
module.exports.ssl = {
ca: fs.readFileSync(path.resolve(__dirname, '../assets/wwwoldhealthgovil.crt')).toString()
}
控制器,InactiveDoctorsController
:
const request = require('request');
module.exports = {
getInactiveDoctors: function(req, res) {
var options = {
method: 'GET',
url: 'https://www.old.health.gov.il/oskimbbriut/rufim/DoctorSearchNew.asp',
qs: {
p: '1'
},
headers: {
"Remote-Address": "147.237.72.200:443",
"Referrer-Policy": "no-referrer-when-downgrade",
"Host": "www.old.health.gov.il",
"Connection": "keep-alive",
"Cache-Control": "max-age=0",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9,fi;q=0.8,sv;q=0.7,he;q=0.6,el;q=0.5",
"Cookie": "wcag-cookie-temp-www.old.health.gov.il=true; ASPSESSIONIDACBTQQTR=NMGEOCKABNLNMJBPKLMKKADD; ASPSESSIONIDACDRQQSR=MIGKLOGBIIGHAGGICMICLJKP; ASPSESSIONIDCADDTSAB=GBNOMJIBBKGDNMKEJBCGCFPH",
},
agentOptions: {
ca: sails.config.ssl.ca,
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
},
};
缺少什么/我做错了什么?
解决方案
推荐阅读
- java - 部署旧 Spring Boot 应用程序版本时自动回滚 liquebase 迁移
- javascript - 如何在尚未对其进行评估的情况下将变量传递给自定义组件?
- android - 在 Android WebView 中使用应用程序文件目录中的 TTF 字体
- angular - ng 服务上的 Angular 6 将 localhost:4200 更改为 domain:name
- java - 在 java servlet 而不是 jsp 中单击注销按钮时,不应激活后退按钮
- python - 从滚动总和中排除最近一天
- java - 如果用户输入“r”或“c”以外的字符,我将如何使此方法循环?
- redis - 为什么我的 redis 命令键不会阻止我的其他操作
- javascript - 为什么在jquery函数中调用css时没有应用css
- java - 我想知道如何将以下 lambda 表达式转换为 for-each 循环:for java1.7 版本