我一直在挖掘各种网站/教程,试图找到我的问题的答案。也许我误解了一些有关 HTTPS 的想法。
好了,言归正传…… 我使用指向index.html的staticFiles在express(4)上托管我的SPA前端应用程序:
const express = require('express');
const auth = require('http-auth');
const app = express();
const basic = auth.basic({
file: `${__dirname}/login`
});
app.use(auth.connect(basic));
app.use(express.static(__dirname + '/dist'));
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/index.html'));
});
app.listen(process.env.PORT || 8080);
但是它仅在 HTTP 上运行,我想使用 HTTPS 托管它(后端也使用 HTTPS 来处理其请求)。
我知道 HTTPS 需要某种加密,因此请求不会以纯文本形式发送,但前端托管的应用程序是否也需要这种加密?如果可以的话,如何实现?
谢谢大家!
最佳答案
好的做法是在代理下托管 Node.js 应用程序(例如 nginx,即 commonly used for this case ),因为如果没有 root 权限,则无法在 80/443 端口上启动 Node.js 应用程序(使用 sudo 是 security issue )。
考虑到这一点 - 这个代理是 https 设置的最佳方式。例如,这里是保护 nginx with letsencrypt under ubuntu 的分步教程。 。您可以找到适用于您的操作系统和其他 Web 服务器的类似教程。
关于node.js - HTTPs 与用于 SPA 的expressjs staticFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198382/