Назад | Перейти на главную страницу

Извлечь правильный формат файлов ключей и сертификатов из файла .p12 для приложения SSL MEAN?

Я пишу приложение 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, а также указать пути к файлу ключа и сертификата.

Шаги, которые я сделал:

Вот где я запутался. На основании найденных инструкций Вот пути к публичному ключу и сертификату. Как мне извлечь открытый ключ из этого Certificates.p12 файл, и как мне извлечь certificate от него такое, что среднее приложение его правильно загрузит?

Дополнительные шаги, которые я предпринял, попытки найти инструкции Вот:

генерация открытого ключа

генерация сертификата

Затем я установил следующее:

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)

Любая помощь была бы потрясающей!

После следующих это короткое руководство Я попытался использовать свой сервер частный ключ, а не открытый ключ.

генерация закрытого ключа из Certificates.p12:

openssl pkcs12 -in Certificates.p12 -nocerts -nodes > key.pem

генерация общедоступного сертификата из Certificates.p12:

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.