Я пытаюсь создать https/express сервер с сертификатом сервера, подписанным настраиваемым CA. Вот мой код:NodeJS, использование private ca с express.js
var express = require('express');
var https = require('https');
var fs = require('fs');
var app = express();
var config = {
key: fs.readFileSync('cert/server.key'),
cert: fs.readFileSync('cert/server.crt'),
ca: fs.readFileSync('cert/ca.crt')
};
app.get('/', function(req, res) {
res.send('Hello world');
});
https.createServer(config,app).listen(443);
Вот как я создаю мой CA и мой сервер серт:
### CA self signed
openssl genrsa -des3 -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
### server cert signed by CA
openssl genrsa -des3 -out server_pass.key 1024
openssl rsa -in server_pass.key -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey ca.key -out server.crt
Я не думаю, что я делаю неправильно на OpenSSL части, я создаю мой CA, по определению автоматически подписанный, затем я создаю свой серверный ключ и csr, а затем подписываю его с сертификатом CA. Я пробовал этот же nodeJS-код с à непосредственно самозаверяющим сертификатом, и в этом случае он работает хорошо.
Я предполагаю, что проблема заключается в том, что мой серверный сертификат не подписан или подписан не публичным CA, как если бы курьер не использовал мой пользовательский ca в объекте config.
Может кто-то подтвердить или аннулировать мое предположение?
Приветствие, Пол
ли это бросает ошибку, или же соединения из браузера просто не получилось? – loganfsmyth