我對ssl非常陌生,並且無法使用https設置我的節點項目。我已經註冊並獲得了StartSSL的免費證書。我在一個名爲key.pem的文件中有我的私鑰。我驗證了我的域名,並將我的證書存放在cert.pem文件中。我應該在哪裏存儲我的密鑰和https服務器證書(Node.js)
下面是我有我的服務器上的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個教程現在,似乎無法得到任何工作。我是否做對了?因爲我沒有從客戶那裏得到任何我認爲我應該做的證書。
試過這個,以及這也沒有工作:即使它說,它監聽443控制檯
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");
});
無法獲取的hello world。
編輯: 這是我的整個index.js,我仍然不能得到的hello world。所有的依賴關係都被安裝。可能是什麼問題?
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);