Openssl создает сертификат из CSR (без закрытого ключа - хранится в другой системе) - PullRequest
0 голосов
/ 29 января 2019

Мне нужно создать сертификат на основе CSR, созданного третьей стороной. У меня нет доступа к закрытому ключу.Сгенерированный сертификат должен иметь как минимум keyUsage = keyCertSign как часть сертификата.

C:/OpenSSL-Win32/bin/openssl.exe req -in C:/xampp/htdocs/certs/test.csr -out test.cer -config C:/xampp/htdocs/command.cnf

Что, конечно, не сработало.

Возможно ли это?Если нет, можно ли вместо этого использовать certreq?PKI серверов, которые мы используем, основаны на Microsoft.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Учитывая сертификат (ca-cert.pem) и его закрытый ключ (ca-key.pem), используйте OpenSSL, чтобы подписать предоставленный CSR (csr.pem) и сгенерировать сертификат для него (cert.pem) -

openssl x509 -req -in csr.pem -out cert.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365 -sha256

Значение параметров -

  • -CAcreateserial - серийный номер будет генерироваться случайным образом для сертификата (и будет увеличиваться при будущих активациях).
  • -дней 365 - срок действия сертификата составляет 365 дней.
  • -sha256 - сертификат будет использовать SHA256 в качестве алгоритма подписи (по умолчанию).

Для создания такого сертификата с ключом «подписи сертификата»использование (а также базовое ограничение CA, которое вам, вероятно, нужно), создайте файл конфигурации (config.txt) -

[extensions]
keyUsage = keyCertSign
basicConstraints = CA:TRUE

и предоставьте его также OpenSSL (указывая на раздел «расширения»)-

openssl x509 -req -in csr.pem -out cert.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365 -sha256 -extfile config.txt -extensions extensions

Проверьте полученный сертификат -

openssl x509 -in cert.pem -noout -text

Он имеет -

X509v3 extensions:
  X509v3 Key Usage:
    Certificate Sign
  X509v3 Basic Constraints:
    CA:TRUE

Для полноты, вот как создать «предоставленный» ключ CA, Сертификат самоподписания CA, ключ субъекта и CSR (здесь с использованием ключей RSA ключи EC могут использоваться одинаково) -

ключ CA -

openssl genpkey -algorithm RSA -out ca-key.pem -pkeyopt rsa_keygen_bits:2048

сертификат СА с автоподписью -

openssl req -key ca-key.pem -new -x509 -days 365 -out ca-cert.pem -sha256 -subj /CN=CACert

Ключ субъекта -

openssl genpkey -algorithm RSA -out key.pem -pkeyopt rsa_keygen_bits:2048

CSR для ключа субъекта -

openssl req -new -key key.pem -out csr.pem -sha256 -subj /CN=SubjectCert
0 голосов
/ 29 января 2019

Если у вас есть доступ к закрытому ключу, вы можете создать самозаверяющий сертификат.В зависимости от вашей ситуации у вас могут возникнуть проблемы с доверенным сертификатом.

Если нет, то необходимо настроить CA .Если вы настраиваете ЦС (не так сложно), то ваша проблема заключается в том, что вам нужно установить открытый ключ ЦС в список доверенных ЦС всех машин и устройств, которые подключаются к серверу, который возвращает сгенерированный вами сертификат.По этой причине вы платите за подписанный сертификат «доверенного» ЦС, поскольку возникает проблема с получением сертификата корневого ЦС, установленного на максимально возможном количестве компьютеров и устройств, а также с целью обновления сертификатов корневого ЦС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...