【发布时间】:2017-03-21 20:43:33
【问题描述】:
我刚刚测试了我在 node.js 官方网站上找到的这个 HTTPS 服务器:
const https = require("https");
const fs = require("fs");
const options = {
"key": fs.readFileSync("key.pem"),
"cert": fs.readFileSync("cert.pem")
};
server = https.createServer(options, (req, res) => {
res.writeHead(200);
res.write("Hello!");
res.end();
});
server.listen(8000);
我用 openssl 创建了两个自签名证书文件:
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out cert.pem
它运行良好,我可以连接浏览器并收到证书警告(因为它是自签名的),但仍然可以点击接受页面。
我需要的不是客户端或服务器身份验证,只是加密!
我不会用浏览器连接服务器,这只是一个较长项目的开始,会有一个自定义客户端知道服务器没有经过身份验证并忽略这个缺点。
我的疑虑是关于加密。有没有办法告诉服务器端,如果连接实际上已成功加密?或者,检测连接是否未加密为承诺?
【问题讨论】:
标签: node.js encryption https pem