【问题标题】:Nodejs Https server (Is it safe to put cert file address in code)Nodejs Https服务器(将证书文件地址放入代码中是否安全)
【发布时间】:2020-08-24 19:44:18
【问题描述】:

我正在尝试通过 https 在 DMZ 服务器上运行节点 JS 应用程序,这是一个示例:

const https = require('https')

const fs = require('fs');

const app = express();

const port = process.env.PORT

const privateKey = process.env.PRIVATE_KEY

const certificate = process.env.CERTIFICATE_PATH

const _env = process.env.ENV

const httpsOptions = { key: fs.readFileSync(privateKey), cert: fs.readFileSync(certificate) }

if (_env === "PRODUCTION") {

   https.createServer(httpsOptions, app).listen(port, function () {

      console.log('Https server running on port :' + port)

   })

} else {

   app.listen(port, () => {

      console.log(' HTTP SERVER Running on port :' + port)

   })

}

我的问题是我需要在代码上引用证书路径,如果服务器被黑客入侵,这可能是个问题

有没有其他方法可以引用证书及其私钥而无需指定物理路径?

【问题讨论】:

  • 为什么你认为如果服务器被黑客入侵会是一个问题?我在那里看不到任何问题。
  • 是的,这是完全安全的,因为如果黑客通过你的代码中的一些魔法获取地址,它可以从你的服务器下载它,唯一可能的方法可能是破解你的内存地址

标签: node.js https ssl-certificate


【解决方案1】:

好吧,如果您的服务器被黑客入侵,那么您的所有数据都会受到损害。我的意思是,如果黑客获得了 root 访问权限。在其他情况下,他将无法读取 .js 文件的源代码(当然,前提是您服务器上的其他所有内容都配置正确)。

无论如何,对于生产生态系统,运行单独的前端服务器(物理或虚拟)、将密钥保存在那里、运行反向代理服务器软件(例如 Nginx)并在那里接受安全连接以及然后代理连接到您的第一个工作服务器(使用 Node.js)。这样一来,您就可以提高安全性,并且将来能够在负载平衡方面做一些很酷的技巧。

你可以阅读更多herehere

【讨论】:

  • 谢谢 Tarkh,我会花一些时间学习 Nginx。
猜你喜欢
  • 2010-11-08
  • 2019-05-23
  • 2018-12-03
  • 2021-01-04
  • 1970-01-01
  • 2023-03-22
  • 2018-10-16
  • 1970-01-01
  • 2014-09-29
相关资源
最近更新 更多