Я пытаюсь настроить HTTPS для всего приложения, которое использует Express 4.16.3 и spdy
для поддержки HTTP / 2.Навигация по схеме https
URL работает, но, по-видимому, для http
перенаправление не выполняется, поскольку не регистрируются отладочные сообщения.
const app = express();
const spdy = require('spdy');
app.use(function enforce_ssl(req, res, next)
{
console.log(`${req.method} ${req.protocol}://${req.headers.host}${req.originalUrl}`);
if(req.secure)
next();
else
res.redirect(301, `https://${req.headers.host}${req.originalUrl}`);
});
<...>
const server = spdy.createServer(
{
cert: fs.readFileSync(path.resolve(cwd, 'stub-cert.pem')),
key: fs.readFileSync(path.resolve(cwd, 'stub-privkey.pem')),
}, app);
server.listen(port, (err) =>
{
if(err)
{
console.error(err);
process.exit(1);
}
else
console.log(`Listening on port ${port}!`);
});
server.on('error', (err) => console.error(err));
Я получаю страницу ERR_EMPTY_RESPONSE
при навигации по «небезопасному» протоколу,Как это исправить?