node.js - Axios 访问自签名证书而不拒绝它
问题描述
var options = {
key: fs.readFileSync("./cert/server.key"),
cert: fs.readFileSync("./cert/server.cert")
};
app.get("/", (req, res) => {
console.log("test 1");
res.send("Hello World111!");
});
var server = https.createServer(options, app);
server.listen(port, function() {
console.log("Express server listening on port " + server.address().port);
});
以上是使用自签名证书的代码。
当我尝试从不同的 NodeJS 应用程序访问 API 时,如下所示。
try {
const agent = new https.Agent({
requestCert: true,
rejectUnauthorized: false,
ca: fs.readFileSync("./cert/server.pem")
});
let response = await axios.get(url, { httpsAgent: agent });
if (response.status == 200) {
return await response.data;
}
} catch (error) {
console.log(error, "Error in getAuth Token");
throw new Error("Network Error, Error receiving token");
}
我收到以下错误:
Error: self signed certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1055:34)
at TLSSocket.emit (events.js:198:13)
at TLSSocket._finishInit (_tls_wrap.js:633:8)
code: 'DEPTH_ZERO_SELF_SIGNED_CERT',
config:
{ url: 'https://localhost/',
method: 'get',
headers:
我不想将rejectUnauthorized 设置为true。或设置任何 nodejs 参数以拒绝证书。
我希望证书毫无例外地被接受。提前致谢。
解决方案
推荐阅读
- sql-server - 如何从远程服务器访问文件以在我的文件系统中进行批量加载?
- java - 即使头文件中存在列表仍然无法正常工作,为什么?
- c# - 如何在运行时创建 C# 类,并在同一运行时访问它们?
- sql - GROUP BY 同一张表中的一列到两个别名列
- python - 使用 Hughlines 变换进行角点检测
- php - Wordpress 永久链接导致 404 未找到
- python - Discord.py 和 youtube_dl:在下载前寻找视频长度
- java - 在客户端运行使用 Maven 创建的 Jar 文件
- apache-spark - 来自..错误有效负载的无效状态代码“400”:“要求失败:会话未激活
- python - 为什么这段代码删除文件而不是重命名它?