javascript - 如何在 Node JS 上将 http 重定向到 https
问题描述
我正在使用 nodejs 来处理我的服务器,并且上面有一个网站。
我最近设置了 SSL 并想将 http 重定向到 https 但无法做到。我在stackoverflow上尝试了所有批准的解决方案,但没有一个有效。
这是我的服务器应用程序:
const express = require('express');
const app = express();
const https = require('https');
const fetch = require('node-fetch');
const bcrypt = require('bcrypt');
const hogan = require('hogan.js');
const fs = require('fs');
const optionSSL = {
key: fs.readFileSync("./etc/ssl/myssl.pem"),
cert: fs.readFileSync("./etc/ssl/myssl.crt")
};
//app.listen(80, () => console.log("Listening at 80"));
app.use(express.static('public', {
extensions: ['html', 'htm'],
}));
app.use(express.json({limit: '1mb'}));
app.use(express.urlencoded({ extended: false }));
https.createServer(optionSSL, app).listen(443, "mydomain.com");
我尝试过的事情:
解决方案
https.createServer(optionSSL, app).listen(443, "mydomain.com");
您正在侦听端口 443,这是 HTTPS 端口。
如果你想从 HTTP 重定向,那么你需要监听 HTTP 端口(而不是附加证书)。
最简单的方法是在端口 80 上运行一个完全不同的服务器(专用于执行重定向)。您可以在 Node.js 中编写一个,或者您可以使用现成的东西,如 nginx 或 lighttpd。
推荐阅读
- excel - 基础连接已关闭。在 Excel DI adf 中接收时出现意外错误
- c++ - macos上gcc安装不完整,仍然无法识别
- java - 在android的棉花糖设备中从RSA密钥生成私钥的异常
- python - 将目录中的 csv 文件另存为单独的数据框
- php - 为什么时间戳 col 为空
- ios - 如果通过触摸推送启动应用程序,有没有办法在等待应用程序的主页面加载完成后运行代码?
- reactjs - 第一次加载页面时,HTML5 视频不会在 React 应用程序中自动播放
- git - 标准错误:主机密钥验证失败 | GitHub | 詹金斯 | 视窗
- javascript - JS:处理读取未直接设置的属性的最佳方法是什么?
- sql - SQL 外键帮助。ORA-00907 缺少右括号