Я намагався створити самопідписаний сертифікат, використовувати його на простому сервері Node.js та встановити його в систему довіреній системі. Однак щось не працює, зокрема "встановлення SSL-сертифіката", тому ось мої кроки:
Створіть сертифікат за допомогою:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
Сертифікат повинен бути a.pem
, оскількиhttps
модуль Node.js вимагає такого.Написати серверну програму:
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
Також переконайтесь, що ім'я є не тільки некваліфікованим іменем, наприклад "ім'я хоста", але замість цього FQDN, як "ім'я хоста.example.com".
—
Steffen Ullrich
Ну, я хотів би використовувати сертифікат
—
Zocker3333
localhost
, оскільки він працює в Safari, але не в Firefox та Chrome, чи може хтось давати вказівки, як створити самопідписаний сертифікат localhost
і встановити його в потрібному місці, щоб усі браузери йому довіряли? Сертифікат повинен бути таким, .pem
як було сказано вище.