Я пишу приложение MEAN для своего университетского факультета на машине разработки Mac. Я начал с шаблона от mean.io. В конфигурационном файле config/env/all.js
, есть раздел для настройки SSL:
https: {
port: false,
// Paths to key and cert as string
ssl: {
key: '',
cert: ''
}
}
Я понимаю, что я должен измениться port:false
на порт, который я использую для SSL, port:443
, а также указать пути к файлу ключа и сертификата.
Шаги, которые я сделал:
ssl
в корне приложенияCertificates
слева я щелкаю правой кнопкой мыши сертификат, выданный ЦС (DigiCert) моего отдела, и нажимаю Export
Certificates.p12
в app_root/ssl
Вот где я запутался. На основании найденных инструкций Вот пути к публичному ключу и сертификату. Как мне извлечь открытый ключ из этого Certificates.p12
файл, и как мне извлечь certificate
от него такое, что среднее приложение его правильно загрузит?
Дополнительные шаги, которые я предпринял, попытки найти инструкции Вот:
cd ssl
openssl pkcs12 -in Certificates.p12 -nocerts -nodes | openssl rsa > id_rsa
openssl rsa -in id_rsa -pubout > pubkey.txt
openssl pkcs12 -in Certificates.p12 -clcerts -nokeys -out pubcert.txt
Затем я установил следующее:
https: {
port: 443,
// Paths to key and cert as string
ssl: {
key: rootPath + '/ssl/pubkey.txt',
cert: rootPath + '/ssl/pubcert.txt'
}
}
При попытке запустить сервер я получаю следующую ошибку:
crypto.js:100
c.context.setKey(options.key);
^
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Object.exports.createCredentials (crypto.js:100:17)
at Server (tls.js:1127:28)
at new Server (https.js:35:14)
at Object.exports.createServer (https.js:54:10)
Любая помощь была бы потрясающей!
После следующих это короткое руководство Я попытался использовать свой сервер частный ключ, а не открытый ключ.
openssl pkcs12 -in Certificates.p12 -nocerts -nodes > key.pem
openssl pkcs12 -in Certificates.p12 -clcerts -nokeys > cert.pem
Затем я установил key: rootPath + '/ssl/key.pem'
и cert: rootPath + '/ssl/cert.pem'
И сервер успешно запустился. Я подключился через браузер к доменному имени моего отдела по протоколу https и использовал назначенный мной порт https. Он успешно подключился и выдал зеленый значок замка. Он загрузил html из приложения index.html, но ничего не отобразил - он просто загружается. Консоль сервера зарегистрировала успешный запрос GET с ответом с кодом 200 OK.