Выберите или перетащите сюда файлы с расширением pem cer cert crt

Обновлено: 06.07.2024

Может ли кто-нибудь сказать мне правильный путь/команду для извлечения/преобразования сертификата .crt и private key .key файлов из файла .pem ? Я просто читал, что они взаимозаменяемы, но не так.

ОТВЕТЫ

Ответ 1

Мне удалось преобразовать pem в crt, используя это:

Ответ 2

Преобразование с использованием OpenSSL

Эти команды позволяют конвертировать сертификаты и ключи в разные форматы, чтобы сделать их совместимыми с конкретными типами серверов или программного обеспечения.

Преобразуйте файл DER (.crt.cer.der) в PEM

Преобразование PEM файла в DER

Преобразование PEM в CRT (файл .CRT)

OpenSSL Преобразование PEM

Преобразование PEM в DER

Преобразование PEM в P7B

Преобразование PEM в PFX

OpenSSL Преобразование DER

Преобразование DER в PEM

OpenSSL Convert P7B

Преобразование P7B в PEM

Преобразование P7B в PFX

OpenSSL Convert PFX

Преобразование PFX в PEM

Генерировать ключи rsa по OpenSSL

Используя OpenSSL в командной строке, вам сначала нужно сгенерировать открытый и закрытый ключ, вы должны защитить этот файл паролем с помощью аргумента -passout, существует много разных форм, которые этот аргумент может принять, поэтому обратитесь к документации OpenSSL об этом.

Создает ключевой файл private.pem, который использует 1024 бита. В этом файле фактически есть как закрытый, так и открытый ключи, поэтому вы должны извлечь общедоступный файл из этого файла:

У вас теперь есть public.pem, содержащий только ваш открытый ключ, вы можете свободно делиться этим с третьими сторонами. Вы можете протестировать все это, просто зашифровав что-то самостоятельно, используя свой открытый ключ, а затем расшифровывая его с помощью вашего закрытого ключа, сначала нам нужно немного данных для шифрования:

Теперь у вас есть данные в файле .txt, позволяет шифровать его с помощью OpenSSL и открытый ключ:

Это создает зашифрованную версию file.txt, называя ее file.ssl, если вы смотрите на этот файл его просто двоичный мусор, ничего очень полезного для кто угодно. Теперь вы можете дешифровать его с помощью закрытого ключа:

Теперь вы получите незашифрованный файл в файле decrypted.txt:

Параметры RSA TOOLS в OpenSSL

NAME

rsa - инструмент для обработки ключей RSA

СИНТАКСИС

openssl rsa [-help] [-inform PEM | NET | DER] [-outform PEM | NET | DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128 ] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [ -pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id]

ОПИСАНИЕ

ПАРАМЕТРЫ КОМАНДЫ

Указывает формат вывода, параметры имеют то же значение, что и параметр -inform.

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

источник входного файла. Для получения дополнительной информации о формате arg см. Раздел PASS PHRASE ARGUMENTS в openssl.

Это указывает имя выходного файла для записи ключа или стандартного вывода, если этот параметр не указан. Если какие-либо параметры шифрования установлены, тогда будет предложена фраза прохода. Имя выходного файла не должно совпадать с именем входного файла.

источник пароля выходного файла. Для получения дополнительной информации о формате arg см. Раздел PASS PHRASE ARGUMENTS в openssl.

Эти параметры шифруют закрытый ключ с указанным шифром перед его выходом. Запросить пароль. Если ни один из этих параметров не задан, ключ написан в виде простого текста. Это означает, что использование утилиты rsa для чтения в зашифрованном ключе без опции шифрования может быть использовано для удаления фразы пароля из ключа или путем установки параметров шифрования, которые он может использовать для добавления или изменения фразы. Эти параметры могут использоваться только с выходными файлами формата PEM.

выводит различные публичные или частные ключевые компоненты в виде обычного текста в дополнение к кодированной версии.

этот параметр предотвращает вывод кодированной версии ключа.

эта опция выводит значение модуля ключа.

эта опция проверяет согласованность закрытого ключа RSA.

по умолчанию закрытый ключ считывается из входного файла: при этом вместо этого открывается открытый ключ.

по умолчанию выводится закрытый ключ: вместо этого будет выведен открытый ключ. Эта опция автоматически устанавливается, если вход является открытым ключом.

используется как -pubin и -pubout, кроме формата RSAPublicKey.

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

Формат закрытого ключа PEM использует строки заголовка и нижнего колонтитула:

Формат открытого ключа PEM использует строки заголовка и нижнего колонтитула:

Формат PEM RSAPublicKey использует строки заголовка и нижнего колонтитула:

Форма NET - это формат, совместимый со старыми серверами Netscape и файлами Microsoft IIS. Это использует несохраненный RC4 для его шифрования. Он не очень безопасен и поэтому должен использоваться только при необходимости.

В более новой версии IIS есть дополнительные данные в экспортированных файлах .key. Чтобы использовать их с помощью утилиты, просмотрите файл с помощью двоичного редактора и найдите строку "private-key", затем вернитесь к последовательности байтов 0x30, 0x82 (это ASN1 SEQUENCE). Скопируйте все данные с этой точки в другой файл и используйте это как вход в утилиту rsa с опцией -inform NET.

Удаление фразы паролей в закрытом ключе RSA:

Чтобы зашифровать закрытый ключ, используя тройной DES:

Чтобы преобразовать закрытый ключ из PEM в формат DER:

Чтобы распечатать компоненты закрытого ключа до стандартного вывода:

Чтобы просто вывести общедоступную часть закрытого ключа:

Вывести публичную часть закрытого ключа в формате RSAPublicKey:

Ответ 3

Чтобы извлечь ключ и сертификат из файла pem:

Извлечь ключ

Еще один метод извлечения ключа.

Извлеките все сертификаты, включая ЦС,

Извлеките первый текстовый сертификат как DER

Ответ 4

.Crt хранит сертификат.. в формате pem. Таким образом,.pem, хотя он может иметь и другие вещи, такие как csr (запрос на подпись сертификата), закрытый ключ, открытый ключ или другие сертификаты, когда он хранит только сертификат, - это то же самое, что и .crt.

Pem - это файл в кодировке Base 64 с верхним и нижним колонтитулом между разделами.

Чтобы извлечь конкретный раздел, скрипт perl, такой как приведенный ниже, полностью допустим, но вы можете использовать некоторые команды openssl.

где == 1 можно изменить на любой нужный вам раздел. Очевидно, что если вы точно знаете заголовок и нижний колонтитул, который вам требуется, и в файле есть только один из них (обычно, если вы сохраняете только сертификат и ключ), вы можете упростить его:

Я отвечаю за обслуживание двух серверов Debian. Каждый раз, когда мне нужно что-то делать с сертификатами безопасности, я гугляю по учебникам и отбиваю, пока все не заработает.

Тем не менее, в моих поисках , я часто сталкиваюсь с различными форматами файлов ( .key , .csr , .pem ) , но я никогда не был в состоянии найти хорошее объяснение того , что цель каждого формата файла является.

Мне было интересно, могут ли хорошие люди здесь в ServerFault дать некоторые разъяснения по этому вопросу?

SSL существует достаточно долго, и вы думаете, что будут согласованы форматы контейнеров. И ты прав, есть. Слишком много стандартов, как это происходит. Так что это то, что я знаю, и я уверен, что другие будут вмешиваться.

  • .csr - это запрос на подпись сертификата. Некоторые приложения могут генерировать их для отправки в центры сертификации. Фактический формат - PKCS10, который определен в RFC 2986 . Он включает в себя некоторые / все ключевые детали запрашиваемого сертификата, такие как субъект, организация, состояние, еще много чего, а также открытый ключ сертификата для подписи. Они подписываются центром сертификации и возвращаются сертификаты. Возвращенный сертификат является открытым сертификатом (который включает в себя открытый ключ, но не закрытый ключ), который может быть в нескольких форматах.
  • .pem - определено в RFC с 1421 по 1424 , это формат контейнера, который может включать в себя только открытый сертификат (например, при установке Apache и файлы сертификатов CA /etc/ssl/certs ) или может включать в себя всю цепочку сертификатов, включая открытый ключ, закрытый ключ и корневые сертификаты. Смущает, что он также может кодировать CSR (например, как здесь используется ), поскольку формат PKCS10 может быть переведен в PEM. Название взято из Privacy Enhanced Mail (PEM) , неудавшегося метода для защищенной электронной почты, но используемый формат контейнера живет на нем и является переводом base64 ключей ASN.1 x509.
  • .key - это файл в формате PEM, содержащий только закрытый ключ определенного сертификата и являющийся просто условным именем, а не стандартизированным. В установках Apache это часто происходит в /etc/ssl/private . Права на эти файлы очень важны, и некоторые программы откажутся загружать эти сертификаты, если они установлены неправильно.
  • .pkcs12 .pfx .p12 - Первоначально определенный RSA в стандартах криптографии с открытым ключом (сокращенно PKCS), вариант «12» был изначально усовершенствован Microsoft и позже представлен как RFC 7292 . Это формат контейнера с паролем, который содержит как открытые, так и частные пары сертификатов. В отличие от файлов .pem, этот контейнер полностью зашифрован. Openssl может превратить это в файл .pem с открытым и закрытым ключами: openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes

Несколько других форматов, которые появляются время от времени:

  • .der - способ кодировать синтаксис ASN.1 в двоичном формате. Файл .pem - это просто файл .der в кодировке Base64. OpenSSL может преобразовать их в .pem ( openssl x509 -inform der -in to-convert.der -out converted.pem ). Windows видит их как файлы сертификатов. По умолчанию Windows экспортирует сертификаты как файлы в формате .DER с другим расширением. Подобно.
  • .cert .cer .crt - файл в формате .pem (или редко .der) с другим расширением, который распознается проводником Windows как сертификат, а не .pem.
  • .p7b .keystore - определен в RFC 2315 как PKCS номер 7, это формат, используемый Windows для обмена сертификатами. Java понимает их изначально и .keystore вместо этого часто использует как расширение. В отличие от сертификатов стиля .pem, этот формат имеет определенный способ включения сертификатов пути сертификации.
  • .crl - Список отзыва сертификатов. Центры сертификации производят их как способ отмены авторизации сертификатов до истечения срока их действия. Иногда вы можете загрузить их с веб-сайтов CA.

Таким образом, существует четыре различных способа представления сертификатов и их компонентов:

Чтобы вы могли без проблем пользоваться SSL-сертификатом на разных платформах и устройствах, иногда требуется изменить его формат. Дело в том, что некоторые форматы лучше подходят для работы с различными видами программного обеспечения. Далее мы расскажем о том, какие форматы бывают, в каких случаях используются и какими способами можно конвертировать один формат сертификата в другой.

Форматы сертификатов

Существует четыре основных формата сертификатов:

PEM — популярный формат используемый Центрами Сертификации для выписки SSL-сертификатов.

Основные расширения этого типа .pem, .crt, .cer, .key. В файлах содержатся строки вида

Сертификаты PEM подходят для установки на веб-серверы nginx, apache2.

DER — это бинарная форма сертификата PEM.

Основные расширения этого типа сертификата .der .cer

Сертификаты DER подходят для установки на серверы Java.

P7B. Файлы P7B кодируются в формате Base64 и имеют расширение .p7b или .p7c.

В файлах содержатся строки вида

Сертификаты P7B подходят для установки на серверы MS Windows, Java Tomcat

PFX — это сертификат в бинарном формате, выданный для домена, включающий в себя сертификат, цепочку сертификатов (корневые сертификаты) и приватный ключ. Имеют расширение .pfx или .p12.

Сертификаты PFX подходят для установки на серверы Windows, в частности Internet Information Services(IIS).

Способы конвертации

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

Конвертация SSl сертификатов посредством OpenSSL

OpenSSL — это надежный, коммерческий и полнофункциональный инструментарий для протоколов Transport Layer Security (TLS) и Secure Sockets Layer (SSL). А также библиотека криптографии общего назначения. Конвертация с использованием библиотеки OpenSSL считается одним из самых безопасных способов: все данные будет сохранены непосредственно на устройстве, на котором будут выполняться операции по конвертированию.

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

Предоставленные ниже примеры команд OpenSSL позволяют конвертировать сертификаты и ключи в нужный формат.

Конвертировать PEM в DER можно посредством команды:

Аналогично, для других типов:

PEM в P7B

PEM в PFX

Обращаем ваше внимание, что после выполнения команды, будет запрошена установка пароля ключа.

DER в PEM

P7B в PEM

P7B в PFX

PFX в PEM

Конвертация при помощи онлайн-сервисов

Этот способ считается наименее безопасным методом: никогда не знаешь, сохраняет ли автор сайта ваш приватный ключ при конвертации.

Чтобы воспользоваться этим способом, вы просто переходите по ссылке на нужный сайт, выбираете нужные вам форматы и прикрепляете файл или файлы сертификата.

Конвертация с PEM в DER

Для конвертации необходим только файл сертификата .crt, .pem


Конвертация с PEM в P7B


В этом случае существует возможность добавить также цепочку сертификатов.

Что такое цепочка сертификатов и для чего она нужна, можно узнать в статье «Что такое корневой сертификат»

Конвертация с PEM в PFX


В этом случае необходимо обратить внимание на то, что обязателен ключ сертификата, а также необходимо установить пароль ключа.

Конвертация из DER в PEM


Конвертация из P7B в PEM


Конвертация из P7B в PFX


Конвертация из PFX в PEM


Конвертация скриптом openssl-ToolKit

OpenSSL ToolKit — скрипт, который облегчает работу с библиотекой OpenSSL. Работа со скриптом является безопасным решением, т.к сертификаты и ключи сертификата никуда не передаются, а используются непосредственно на вашем сервере.

Для начала работы скрипт необходимо скачать и запустить. Сделать это можно одной командой:

После выполнения команды откроется следующее окно:


Нас интересует пункт 2. Convert certificates

После перехода в пункт 2. появится следующее меню, с выбором нужного типа конвертирования


После выбора преобразования, в данном случае PEM to FPX, скрипт предложит выбрать директорию с сертификатами на том устройстве, где запускается скрипт.


В нашем случае мы их скачали в директорию /home/ivan/crt/

После корректного ввода директории, скрипт отобразит все файлы в этой директории.

Далее нужно ввести имя сертификата, который будем конвертировать, в нашем случае это site.pem


Обращаю ваше внимание, что для корректной конвертации, с PEM в PFX, необходимо вручную объединить файл сертификата, цепочки и ключа в один файл, иначе будет возникать ошибка конвертации.

Сделать это можно простой командой

Данное действие необходимо только для конвертации из PEM в PFX.

Мы рассмотрели пример конвертации PEM в PFX. Этим же путем можно конвертировать сертификаты в другие форматы. Единственное, что вам уже не понадобится шаг с объединением файлов.

от .pem Извлечь / конвертировать сертификат .crt И закрытый ключ .key Каков правильный метод или команда для файла? Я знаю, что они конвертируемые, но я не знаю, как это сделать.

Лучшее решение

Вы можете конвертировать pem в crt используя:

Возможные решения

Преобразование с использованием OpenSSL

Следующая команда позволяет преобразовывать сертификаты и ключи в различные форматы, делая их совместимыми с определенными типами серверов или программного обеспечения.

  • воли DER Файл ( .crt .cer .der ) В PEM
  • воли PEM Файлы преобразованы в DER
  • Будет содержать закрытый ключ и сертификат PKCS#12 Файл ( .pfx .p12 ) В PEM

You can add -nocerts to only output the private key or add -nokeys to only output the certificates.

  • воли PEM Файл сертификата и закрытый ключ преобразуются в PKCS#12(.pfx .p12)
  • воли PEM Перевести на CRT (файл .CRT)
OpenSSL для PEM
  • воли PEM Перевести на DER
  • воли PEM Перевести на P7B
  • воли PEM Перевести на PFX
OpenSSL изменение DER
OpenSSL изменение P7B
  • воли P7B Перевести на PEM
  • воли P7B Перевести на PFX
OpenSSL изменение PFX
по OpenSSL генерировать rsa ключ
  • Использовать в командной строке OpenSSL , Сначала нужно сгенерировать открытый и закрытый ключи, вы должны использовать -passout Параметр password защищает этот файл. Этот параметр может принимать различные формы, см. OpenSSL Документы.
    openssl genrsa -out private.pem 1024
  • Это создаст файл ключа с именем private.pem, который использует 1024 бита. Файл фактически имеет как закрытый ключ, так и открытый ключ, и открытый ключ можно извлечь из файла:

Теперь ваш public.pem Содержит только открытый ключ, который может свободно передаваться третьим лицам. Вы можете проверить это, зашифровав свои данные с помощью открытого ключа, а затем расшифровав его с помощью закрытого ключа. Сначала нам понадобятся некоторые данные для шифрования:

Сейчас в file.txt В нем есть некоторые данные, которые вы можете использовать OpenSSL И шифрование с открытым ключом:

  • Это создаст зашифрованную версию file.txt И закажите этот файл как file.ssl (Если вы откроете этот файл напрямую, чтобы просмотреть его, то он выглядит как двоичный мусор и не может быть понят человеком). Затем его можно расшифровать с помощью закрытого ключа:
  • Сейчас в decryptpted.txt Существует незашифрованный файл в:
OpenSSL RSA Варианты инструмента

Название:
инструмент обработки ключей RSA-RSA

Краткое описание:
openssl rsa [-help] [-inform PEM | NET | DER] [-outform PEM | NET | DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [ -aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin ] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id]

Описание:
rsa Обработка команд RSA Ключ. Они могут конвертировать различные формы и распечатывать свои компоненты. Обратите внимание, что эта команда использует традиционные SSLeay Шифрование закрытым ключом в совместимом формате: новые приложения должны использовать pkcs8 Утилиты более безопасны PKCS#8 Формат.

примечания

  • Формат закрытого ключа PEM использует следующие строки верхнего и нижнего колонтитула:
  • Формат открытого ключа PEM использует следующие строки верхнего и нижнего колонтитула:
  • Формат PEM RSAPublicKey использует следующие строки верхнего и нижнего колонтитула:

NET Формат такой же как старый Netscape Сервер и Microsoft IIS .key Файл совместимый формат, который использует незашифрованный RC4 Зашифрованные. Этот метод не очень безопасен, поэтому используйте его только при необходимости. Некоторые более новые версии IIS В экспортируемом .key В файле есть другие дополнительные данные. Чтобы использовать эти утилиты, используйте бинарный редактор для просмотра файлов и поиска строк "private-key" А затем вернемся к последовательности байтов 0x30 , 0x82 (Это ASN1 SEQUENCE ). Скопируйте все данные из этой точки в другой файл и используйте его как -inform NET опции rsa Сервисный ввод.

Читайте также: