Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   HTTPS Server на Express (https://javascript.ru/forum/node-js-io-js/60774-https-server-na-express.html)

Maxman 19.01.2016 17:11

HTTPS Server на Express
 
Всем привет, никогда раньше не поднимал защищённые сервера, вобщем проблема следующая: зарегистрировал VPS на котором выдавался подарочный SSL-сертификат для домена. Техподдержка предоставила мне несколько файлов в формате .pem, среди которых приватный ключ, сертификат, корневой сертификат, промежуточный сертификат и запрос на получение сертификата. Следующий код создаёт тестовый сервак:
var fs = require('fs'),
    http = require('http'),
    https = require('https'),
    express = require('express');

var port = 3000;
var app = express();

var options = {
    key: fs.readFileSync('../.ssl/key.pem'),
    cert: fs.readFileSync('../.ssl/certificate.pem'),
};

var server = https.createServer(options, app).listen(port, function() {
	console.log("Express server listening on port " + port);
});

app.get('/', function (req, res) {
	res.writeHead(200);
	res.end("Hello, secure world!\n");
});


При запуске выдаёт ошибку:
Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

т.е. как я понял сертификат не совпадает с ключем. Вопрос, к каким именно из этих четырёх сертификатов нужно указывать путь в коде? И для чего нужен файл запроса на получение сертификата? Всем спасибо зарание.

Maxman 20.01.2016 15:20

Решил. Дело было в том, что не к тем файлам путь указан был.
var fs = require('fs'),
    https = require('https'),
    express = require('express');

var port = 3000;
var app = express();

var options = {
    key: fs.readFileSync('/var/www/httpd-cert/admin/qwile.com.key'),
    cert: fs.readFileSync('/var/www/httpd-cert/admin/qwile.com.crt'),
    requestCert: true
};

var server = https.createServer(options, app); 
server.listen(port, function() {
	console.log("Express server listening on port " + port);
});


Часовой пояс GMT +3, время: 14:01.