Я пытался создать самозаверяющий сертификат, использовать его на простом сервере Node.js и установить его в систему, чтобы система была доверенной. Однако что-то не работает, в частности, «установка SSL-сертификата», так что вот мои шаги:
Создать сертификат, с:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
Сертификат должен быть.pem
, так как Node.js 'https
Модуль требует один.Напишите серверное приложение:
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);
Установите сертификат (OS X): Из того, что я прочитал в Интернете, я добавил
cert.pem
к системным сертификатам, щелкнул правой кнопкой мыши на нем и открыл информацию, а затем мог изменить ее на доверенную.
Что я сделал не так?
Что значит «не работает» точно?
—
nKn
@nKn Я только что протестировал его с Safari и curl, кажется, что он отлично работает там (без каких-либо предупреждений), но Chrome все еще говорит 'NET :: ERR_CERT_COMMON_NAME_INVALID'
—
Zocker3333
Итак, каково общее имя субъекта в вашем сертификате? И соответствует ли оно имени хоста в URL, который вы вводите в Chrome?
—
Spiff
Убедитесь также, что это имя не только безусловное имя, например «имя хоста», но и полное доменное имя, например «имя_хоста.example.com».
—
Steffen Ullrich
Ну, я хотел бы использовать сертификат для
—
Zocker3333
localhost
Так как он работает в Safari, но не в Firefox и Chrome, кто-то может дать инструкции, как создать самозаверяющий сертификат для localhost
и установить его в нужном месте, чтобы все браузеры доверяли ему? Сертификат должен быть .pem
как уже упоминалось выше.