Как создать keystore.p12 из сертификата (.cer), цепочки сертификатов (.p7b) и из ключа (.key и .pem) - PullRequest
0 голосов
/ 07 октября 2019

У меня есть следующие файлы:

  • filename.key (RSA PRIVATE KEY)
  • filename.pem (ЗАПРОС СЕРТИФИКАТА)
  • certificate.cer (СЕРТИФИКАТ)
  • CertificateChain.p7b

Я получил эти файлы от ЦС, включая цепочку сертификатов. Мне нужно сгенерировать 'keystore.p12', чтобы настроить SSL для приложения весенней загрузки со следующей информацией.

 server:
    port: 443
    ssl:
        key-store: keystore.p12
        key-store-password: <your-password>
        keyStoreType: PKCS12
        keyAlias: <my alias>

Может кто-нибудь помочь мне сгенерировать 'keystore.p12'?

1 Ответ

0 голосов
/ 08 октября 2019

Расширения файлов на самом деле не управляют форматом или содержимым файла, хотя обычно они должны предоставлять как минимум частичное описание. Точно так же базовые имена (перед расширением) должны описывать то, что находится в файле, но не всегда делают это правильно. Важно то, что находится в файлах.

.key обычно используется для одиночного закрытого ключа, но посмотрите на него, чтобы убедиться, а также определить, в каком формате он находится, потому что их много. Вы не должны никогда получать свой закрытый ключ от CA;он должен генерироваться локально, обычно на машине, где он будет использоваться, и, по крайней мере, «владельцем» или администратором этой машины. Может быть своего рода исключение, если вы говорите о внутреннем центре сертификации для компании, организации, агентства или офиса - в этом случае лицо, управляющее центром сертификации, может быть тем же лицом, которое отвечает за безопасность на всех компьютерах. - или наоборот, в зависимости от вашей точки зрения - и для них может иметь смысл сгенерировать как ключ, так и сертификат.

.pem используется для лотов вещей в формате PEM , и то, что содержимое этого файла (или есть) имеет значение больше, чем факт этогоБыть PEM. Посмотрите на первую строку -----BEGIN (somewords)----- и посмотрите, что это слово (а). За этим должны следовать сразу или после нескольких строк заголовка данные в base64 (сплошной блок букв, цифр и специальных символов + / =), затем соответствующая строка -----END (somewords)-----. Если за строкой END следует другой похожий блок или несколько, посмотрите на все из них.

.cer обычно используется для сертификатов в формате DER (двоичный) или PEM (как указано выше). .p7b аналогичным образом используется для «фиктивных» сообщений PKCS7, содержащих сертификаты - особенно сертификаты, используемые в цепочке - в DER или PEM. Что еще более важно, p7b иногда используется для всей цепочки , включая сертификат конечного объекта (сервера), а иногда и остальную часть цепочки , за исключением сертификата EE, и имеет значение, какой. Если у вас есть OpenSSL - или вы можете его получить (например, установив пакет или для Windows, я рекомендую установщик из http://www.slproweb.com/products/Win32OpenSSL.html) или можете переместить ваши данные на компьютер, на котором он есть, - тогда выполните:

 # if the p7b file is in PEM format (you can see ----BEGIN PKCS7----- line)
 openssl pkcs7 -in file.p7b -print_certs 
 # if the p7b file is in DER format (looks like garbage in a text editor or display)
 openssl pkcs7 -in file.p7b -inform der -print_certs
 # for now look only at the subject= and issuer= lines to see
 # for each cert in the file who it is for, and if/how they chain

Тогда:

  • , если файл .key является закрытым ключом в одном из форматов PEM, поддерживаемых OpenSSL, вы можете использовать это;В противном случае, если .key является приватным ключом в каком-либо другом формате, или .pem является или включает приватный ключ в каком-либо формате, вам необходимо преобразовать и / или извлечь его: расскажите нам больше о том, как эти файлы выглядят.

  • , если файл .p7b имеет формат PEM или DER, поместите его расширенный вывод (сверху) в файл. Если это включает сертификат EE, пропустите следующий шаг.

  • , если файл .p7b не включает сертификат EE, но файл .cer является этим сертификатом, если в формате PEMпросто добавьте его в файл, содержащий вывод .p7b;если в формате DER, то конвертируйте его с openssl x509 -in file.cer -inform der и добавьте , что .

  • , если теперь у вас есть закрытый ключ в одном из форматов PEM, поддерживаемых OpenSSL, ицепочка сертификатов, включая сертификат EE в формате PEM, do

    openssl pkcs12 -export -in chain.pem -inkey key.pem -out newfile.p12 [-name x]
    # the -name option provides the 'alias' used by Java
    # if not specified it defaults to the numeral 1 (one)
...