我正在運行一個使用express開發的node.js服務器,並且它工作正常。我正在嘗試使用https模塊來保護它。我使用openssl生成了自簽名證書和密鑰,但在嘗試連接時從firefox獲取了以下錯誤。 IE也沒有加載安全頁面。Node.js,Firefox錯誤:沒有常用的加密算法。 (錯誤代碼:ssl_error_no_cypher_overlap)
安全連接失敗
到本地主機的連接過程中出現錯誤:3001。不能 與對等安全地進行通信:沒有通用的加密算法。 (錯誤代碼:ssl_error_no_cypher_overlap)
您無法顯示您正在查看的頁面,因爲無法驗證接收到的數據的真實性 。請 與網站所有者聯繫,告知他們這個問題。
我創建使用下面的命令密鑰和證書:
>> openssl genrsa 1024 > key.pem
>> openssl req -x509 -new -key key.pem > key-cert.pem
我使用火狐39.0,節點0.12.4,表達4.13.1,OpenSSL的0.9.81和Windows Server 2008中工作R2企業版。
這是我的代碼。 server.js的出發點是:節點server.js
server.js:
var http = require('http');
var https = require('https');
var fs = require('fs');
var app = require('./app');
var credentials = {
key: fs.readFileSync('./certificate/key.pem'),
cert: fs.readFileSync('./certificate/key-cert.pem')
};
http.createServer(app).listen(3000);
https.createServer(credentials, app).listen(3001);
app.js:
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var register = require('./routes/register');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//app.get("/", login.form);
app.get("/register", register.form);
app.post("/register", register.submit);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
我試圖使用來訪問應用程序: https://localhost:3001/register
我被困在這裏。請幫助我解決方案。