[英]Where am I supposed to store my key and cert for an https server (Node.js)
我是ssl的新手,无法使用https设置节点项目。 我已经注册并从StartSSL获得了免费证书。 我的私钥存在于名为key.pem的文件中。 我已经验证了域名,并将我的证书保存在cert.pem文件中。
这是我在HTTP上设置服务器的方式:
var server = require('http').createServer(app);
var port = process.env.PORT || 3000;
server.listen(port, function () {
console.log('Server listening at port %d', port);
});
这可以正常工作,相应地加载了我的所有页面。 这是我尝试设置https服务器的方式:
var https = require("https");
var fs = require("fs");
var key_file = "key.pem";
var cert_file = "cert.pem";
var passphrase = "...";
var config = {
key: fs.readFileSync(key_file),
cert: fs.readFileSync(cert_file),
passphrase: passphrase
};
var server = https.createServer(config,app).listen(443);
问题在于本地主机不会加载任何内容。 我的控制台没有出现任何错误,这很烦人,因为我不知道自己在做什么错。 如您所见,我只是将密钥和证书放在项目的根目录中,我不确定是否应该这样做。 我是否应该能够访问localhost:443或https:// localhost:443并查看我的网站? 我现在尝试按照6个教程进行学习,似乎无法解决任何问题。 我什至这样做对吗? 因为我没有从客户那里得到我认为应该做的任何证书。
也尝试过这也没有用:
var https = require("https");
var constants = require("constants");
var fs = require("fs");
var passphrase = "...";
https.createServer({
key: fs.readFileSync("key.pem"),
cert: fs.readFileSync("cert.pem"),
passphrase: passphrase,
secureProtocol: 'SSLv23_method',
honorCipherOrder: true,
secureOptions: constants.SSL_OP_NO_SSLv3 | constants.SSL_OP_NO_SSLv2
}, function(req, res) {
req.end("Hello, SSL World!");
}).listen(443, function() {
console.log("SSL Proxy listening on port 443");
});
即使它说正在控制台中监听443,也无法获得世界。
编辑:这是我整个index.js,我仍然无法获得世界。 所有依赖项均已安装。 可能是什么问题?
var express = require('express');
var app = express();
var https = require("https");
var fs = require("fs");
var options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
我已经尝试过您的代码,并且可以正常工作。 但是你需要改变
req.end("Hello, SSL World!");
至
res.end("Hello, SSL World!");
否则,请尝试遵循此示例,该示例甚至更简单https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener
请确保以root用户身份启动服务器,因为您正在使用端口443。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.