【发布时间】:2018-07-23 16:49:44
【问题描述】:
我想请教您的意见。我不熟悉 HTTPS 和证书。我有自己的适用于 Nodejs 的小型应用程序。
我的 package.json:
{
"name": "chatwidgethttps",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node server/ index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.3"
}
}
npm start 并且我的应用程序正在运行 https://localhost:3333。我将此 URL 放到外部 LiveChat 平台(在 https 下),因为我的应用程序应该用作实时聊天小部件。所有数据都必须得到保护(所有数据都是秘密的)
我的问题是在这种情况下最好的方法是什么 - 我需要自签名证书吗? 每个想要使用我的应用程序的人都必须安装证书吗?如果是 - 如何? 如何让证书自动安装?
到目前为止,我已经尝试过这样的事情:
const express = require('express')
const fs = require('fs')
const https = require('https')
const path = require('path')
const app = express();
const directoryToServe = 'client'
const port = 3333
app.use('/', express.static(path.join(__dirname, '..', directoryToServe)))
const httpsOptions = {
cert: fs.readFileSync(path.join(__dirname,'ssl','server.crt')),
key: fs.readFileSync(path.join(__dirname,'ssl','server.key'))
};
https.createServer(httpsOptions,app).listen(port, function() {
console.log('Server started')
});
数百个教程中的一个说,毕竟我必须在浏览器上安装我的公共 server.crt 证书,但它不起作用 - 在浏览器上我仍然看到红色文本不安全。在 Firefox 或 IE 上,我的应用完全不可见 - 我收到消息:
此网站不安全
这可能意味着有人试图欺骗您或窃取任何信息 你发送到服务器。您应该立即关闭此网站。
非常感谢您提前提供的所有提示。
【问题讨论】:
标签: node.js https ssl-certificate