node.js - 使用 Node.js 将 http 重定向到 https

标签 node.js http ssl https

我有一个 Node.js 服务器,域上有一个有效的 SSL 证书。 我已经在这个网站上阅读了一些关于这个的回复,但即使我涉及到这些已经解决的问题,我也会收到错误。

var express = require('express');
var https = require('https');
var http = require('http');
var path = require('path');
var fs = require('fs');
var mysql = require('mysql');

var queue = {};
var qc = {};

var app = express();

var options = {
    key: fs.readFileSync('sslcert/domain-name.key', 'utf8'),
    cert: fs.readFileSync('sslcert/domain-name.csr', 'utf8')
};

var httpServer = http.createServer(app);
var httpsServer = https.createServer(options, app);

/* various stuff to display my website */

httpServer.listen(process.env.PORT);
httpsServer.listen(process.env.PORT);

我的控制台出现以下错误。

_tls_common.js:67
      c.context.setCert(options.cert);
                ^

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
    at Error (native)
    at Object.createSecureContext (_tls_common.js:67:17)
    at Server (_tls_wrap.js:754:25)
    at new Server (https.js:17:14)
    at Object.exports.createServer (https.js:37:10)
    at Object.<anonymous> (/srv/data/web/vhosts/default/server.js:35:25)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)

预先感谢您的回答!

诺埃尔。

最佳答案

cert 应该是您域的 PEM 格式证书,后面是 PEM 格式的中间证书;不是企业社会责任。

cert: fs.readFileSync('sslcert/domain-name.pem', 'utf8')

关于node.js - 使用 Node.js 将 http 重定向到 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188149/

相关文章:

node.js - AWS Lambda - 无法访问捆绑在层(Node.js)中的JS文件

http - 如何在 2 个 HTTP 请求将值返回到存储后触发 NgRx 操作

http - 我应该为连接错误返回什么状态代码?

http - 如何处理映射到同一响应的不同请求?

java - 在 Java 中选择 SSL 客户端证书

ssl - 无法在远程服务器中部署 Worklight 适配器

ssl - 大摇大摆的 TLS 配置

javascript - Jade/PUG JSON 插值

node.js - Gridfs-stream、多方中间件的编码问题

javascript - 如何使用 babel 或 webpack 在 ES6 导入/导出模块中使用 Node.js CommonJS 模块?