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 т.е. как я понял сертификат не совпадает с ключем. Вопрос, к каким именно из этих четырёх сертификатов нужно указывать путь в коде? И для чего нужен файл запроса на получение сертификата? Всем спасибо зарание. |
Решил. Дело было в том, что не к тем файлам путь указан был.
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, время: 09:28. |