- Формат SSL сертификата: как конвертировать сертификат в .pem, .cer, .crt, .der, pkcs или pfx?
- Обзор Форматов SSL Cертификатов
- Формат сертификата PEM
- Формат сертификата DER
- PKCS # 7 / P7B сертификат
- PFX сертификат (формат PKCS # 12)
- Конвертация SSL сертификатов в OpenSSL
- Онлайн конвертер SSL сертификатов
- Конвертация PEM в DER
- Конвертация PEM в P7B / PKCS#7
- Конвертация PEM в PFX / PKCS#12
- Что такое файл Pem и чем он отличается от других форматов файлов сгенерированных ключей OpenSSL?
- Windows — конвертация SSL сертификата PEM в формат PFX (PKCS#12) с помощью подсистемы Linux
- What Is a PEM File?
- How to open, edit, and convert PEM files
- What to Know
- What Is a PEM File?
- How to Open PEM Files
- Windows
- macOS
- Linux
- Firefox and Thunderbird
- Java KeyStore
- How to Convert a PEM File
- More Information on PEM
- Still Can’t Open the File?
Формат SSL сертификата: как конвертировать сертификат в .pem, .cer, .crt, .der, pkcs или pfx?
Обзор Форматов SSL Cертификатов
Формат сертификата PEM
PEM – наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Она представляют собой ASCII файлы, закодированные по схеме Base64. Когда вы открываете файл pem формата в текстовом редакторе, вы можете увидеть, что текст кода в нем начинается с тега «—— BEGIN CERTIFICATE ——» и заканчивая тегом «—— END CERTIFICATE ——«. Apache и другие подобные серверы используют сертификаты в PEM формате. Обратите внимание, что в одном файле может содержатся несколько SSL сертификатов и даже приватный ключ, один под другим. В таком случае каждый сертификат отделен от остальных ранее указанными тегами BEGIN и END. Как правило, для установки SSL сертификата на Apache, сертификаты и приватный ключ должны быть в разных файлах.
Формат сертификата DER
DER формат – это бинарный тип сертификата вместо формата PEM. В PEM формате чаще всего используется расширение файла .cer, но иногда можно встретить и расширение файла .der. Поэтому чтобы отличить SSL сертификат в формате PEM от формата DER, следует открыть его в текстовом редакторе и найти теги начала и окончания сертификата (BEGIN/END). DER SSL сертификаты, как правило, используются на платформах Java.
PKCS # 7 / P7B сертификат
SSL сертификаты в формате PKCS # 7 или P7B — это файлы, которые хранятся в формате Base64 ASCII и имеют расширение файла .p7b или .p7c. P7B сертификаты содержат теги начала сертификата «—— BEGIN PKCS7 ——» и его конца «—— END PKCS7 ——«. Файлы в формате P7B включают в себя только ваш SSL сертификат и промежуточные SSL сертификаты. Приватный ключ при этом идет отдельным файлом. SSL сертификаты в формате PKCS # 7 / P7B поддерживают следующие платформы: Microsoft Windows и Java Tomcat.
PFX сертификат (формат PKCS # 12)
Формат SSL сертификата PKCS # 12 или, как его еще называют, PFX сертификат — бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ. PFX файлы, как правило, имеют расширение .pfx или .p12. Обычно, файлы формата PFX используются на Windows серверах для импорта и экспорта файлов сертификатов и вашего приватного ключа.
Конвертация SSL сертификатов в OpenSSL
Данные команды OpenSSL дают возможность преобразовать сертификаты и ключи в разные форматы. Для того чтобы сделать их совместимыми с определенными видами серверов, либо ПО. К примеру, Вам необходимо конвертировать обыкновенный файл PEM, который будет работать с Apache, в формат PFX (PKCS # 12) с целью применения его с Tomcat, либо IIS.
- Конвертировать PEM в DER
openssl x509 -outform der -in certificate.pem -out certificate.der
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
openssl x509 -inform der -in certificate.cer -out certificate.pem
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.ceropenssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Онлайн конвертер SSL сертификатов
Также существуют онлайн программы для конвертации сертификатов из одного формата в другой. Например, мы можем посоветовать SSL конвертер от SSLShopper. Используйте этот SSL конвертер для преобразования SSL-сертификатов различных форматов, таких как PEM, DER, P7B и PFX. Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его текущий тип (он определяется по формату расширения), затем выберите формат, в какой Вам необходимо преобразовать SSL сертификат и нажмите кнопку “Convert Certificate”. Обратите внимание, что в зависимости от того, в какой формат вам нужно конвертировать SSL сертификат, от вас потребуются разные исходящие файлы.
Конвертация PEM в DER
Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файлSSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.
Конвертация PEM в P7B / PKCS#7
Если же вам нужно преобразовать ваш стандартный SSL сертификат в файл формата P7B / PKCS#7, вы можете кроме SSL сертификата вашего домена загрузить также файлы с цепочками сертификатов. Более подробно о том, что такое цепочка SSL сертификатов, мы писали в статье о CA-bundle.
Конвертация PEM в PFX / PKCS#12
Обратите внимание, что для конвертации стандартного формата SSL сертификата необходимо добавить еще один файл – ваш приватный ключ. Приватный ключ – это конфиденциальная информация, которая должна быть только у вас. Поэтому центры сертификации не высылают его месте с файлами вашего сертификата. Приватный ключ создается в момент генерации CSR запроса. Если вы генерируете CSR у себя на сервере, на нем же должен автоматически сохраниться ключ. Если вы создаете CSR запрос в специальном инструменте на нашем сайте (на странице по ссылке или во время заполнения технических данных), ключ показывается вам в конце генерации CSR (или введения технических данных), но не сохраняется в нашей базе данных. Поэтому важно, чтобы вы самостоятельно сохранили приватный ключ.
Что такое файл Pem и чем он отличается от других форматов файлов сгенерированных ключей OpenSSL?
Я отвечаю за обслуживание двух серверов 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.
Таким образом, существует четыре различных способа представления сертификатов и их компонентов:
- PEM — управляется RFC, преимущественно используется программным обеспечением с открытым исходным кодом. Он может иметь различные расширения (.pem, .key, .cer, .cert, другие)
- PKCS7 — открытый стандарт, используемый Java и поддерживаемый Windows. Не содержит материала закрытого ключа.
- PKCS12 — частный стандарт Microsoft, который был позже определен в RFC, который обеспечивает повышенную безопасность по сравнению с открытым текстом PEM. Это может содержать материал закрытого ключа. Он используется преимущественно системами Windows, и может быть свободно преобразован в формат PEM с помощью openssl.
- DER — родительский формат PEM. Полезно думать о нем как о двоичной версии файла PEM в кодировке base64. Обычно не используется за пределами Windows.
Windows — конвертация SSL сертификата PEM в формат PFX (PKCS#12) с помощью подсистемы Linux
Будем собирать PFX файл в Windows 10 с помощью подсистемы Linux. У нас есть:
- Сертификат, cert.pem.
- Ключ, key.pem.
- Цепочка, certnew.p7b.
Включаем bash в Windows:
На диске C создаём папку C:\keys, переносим туда все нужные файлы:
Цепочка у нас в формате p7b, это стандартный формат, когда мы скачиваем цепочку с центра сертификации Windows. Переведём цепочку в PEM формат.
Запускаем bash. Для запуска bash нужно выполнить команду «bash» или «bash.exe».
Проверим что пакет openssl установлен:
Если не установлен, то пакет ставится через apt-get:
У меня openssl уже стоит, Переходим в папку /mnt/c/keys/
What Is a PEM File?
How to open, edit, and convert PEM files
What to Know
- A PEM file is a Privacy Enhanced Mail Certificate file.
- Open one with the program or operating system that requires the file (they all work a bit differently).
- Convert to PPK, PFX, or CRT with a command or special converter.
This article explains what PEM files are used for, how to open one depending on the program or OS you’re using, and how to convert one to a different certificate file format.
What Is a PEM File?
A PEM file is a Privacy Enhanced Mail Certificate file used to privately transmit email. The person receiving this email can be confident that the message wasn’t altered during its transmission, wasn’t shown to anyone else, and was sent by the person who claims to have sent it.
PEM files arose out of the complication of sending binary data through email. The PEM format encodes binary with base64 so that it exists as an ASCII string.
The PEM format has been replaced by newer and more secure technologies but the PEM container is still used today to hold certificate authority files, public and private keys, root certificates, etc.
Some files in the PEM format might instead use a different file extension, like CER or CRT for certificates, or KEY for public or private keys.
How to Open PEM Files
The steps for opening a PEM file are different depending on the application that needs it and the operating system you’re using. However, you might need to convert your PEM file to CER or CRT in order for some of these programs to accept the file.
Windows
If you need the CER or CRT file in a Microsoft email client like Outlook, open it in Internet Explorer to have it automatically loaded into the proper database. The email client can automatically use it from there.
To see which certificate files are loaded onto your computer, and to import ones manually, use Internet Explorer’s Tools menu to access Internet Options > Content > Certificates, like this:
To import a CER or CRT file into Windows, start by opening Microsoft Management Console from the Run dialog box (use the Windows Key + R keyboard shortcut to enter mmc). From there, go to File > Add/Remove Snap-in. and select Certificates from the left column, and then the Add > button in the center of the window.
Choose Computer account on the following screen, and then move through the wizard, selecting Local computer when asked. Once «Certificates» is loaded under «Console Root,» expand the folder and right-click Trusted Root Certification Authorities, and choose All Tasks > Import.
macOS
The same concept is true for your Mac email client as it is for a Windows one: use Safari to have the PEM file imported into Keychain Access.
You can also import SSL certificates through the File > Import Items menu in Keychain Access. Choose System from the drop-down menu and then follow the on-screen prompts.
If these methods don’t work for importing the PEM file into macOS, you might try the following command (change «yourfile.pem» to be the name and location of your specific PEM file):
Linux
Use this keytool command to view the contents of a PEM file on Linux:
Follow these steps if you want to import a CRT file into Linux’s trusted certificate authority repository (see the PEM to CRT conversion method in the next section below if you have a PEM file instead):
Navigate to /usr/share/ca-certificates/.
Create a folder there (for example, sudo mkdir /usr/share/ca-certificates/work).
Copy the .CRT file into that newly created folder. If you’d rather not do it manually, you can use this command instead: sudo cp yourfile.crt /usr/share/ca-certificates/work/yourfile.crt.
Make sure the permissions are set correctly (755 for the folder and 644 for the file).
Run the sudo update-ca-certificates command.
Firefox and Thunderbird
If the PEM file needs importing into a Mozilla email client like Thunderbird, you might have to first export the PEM file out of Firefox. Open the Firefox menu and choose Options. Go to Privacy & Security and find the Security section, and then use the View Certificates. button to open a list, from where you can select the one you need to export. Use the Backup. option to save it.
Then, in Thunderbird, open the menu and click or tap Options. Navigate to Advanced > Certificates > Manage Certificates > Your Certificates > Import. From the «File name:» section of the Import window, choose Certificate Files from the drop-down, and then find and open the PEM file.
To import the PEM file into Firefox, just follow the same steps you would to export one, but choose Import instead of the Backup. button. If you can’t find the PEM file, make sure the «Filename» area of the dialog box is set to Certificate Files and not PKCS12 Files.
Java KeyStore
Stack Overflow has a thread about importing a PEM file into the Java KeyStore (JKS) if you need to do that. Another option that might work is to use this keyutil tool.
How to Convert a PEM File
Unlike most file formats that can be converted with a file conversion tool or website, you need to enter special commands against a particular program in order to convert the PEM file format to most other formats.
Convert PEM to PPK with PuTTYGen. Choose Load from the right side of the program, set the file type to be any file (*.*), and then browse for and open your PEM file. Choose Save private key to make the PPK file.
With OpenSSL (get the Windows version here), you can convert the PEM file to PFX with the following command:
If you have a PEM file that needs to be converted to CRT, like is the case with Ubuntu, use this command with OpenSSL:
OpenSSL also supports converting .PEM to .P12 (PKCS#12, or Public Key Cryptography Standard #12), but append the «.TXT» file extension at the end of the file before running this command:
See the Stack Overflow link above about using the PEM file with Java KeyStore if you want to convert the file to JKS, or this tutorial from Oracle to import the file into the Java truststore.
More Information on PEM
The data integrity feature of the Privacy Enhanced Mail Certificate format uses RSA-MD2 and RSA-MD5 message digests to compare a message before and after it’s sent, to ensure that it hasn’t been tampered with along the way.
At the beginning of a PEM file is a header that reads ——BEGIN [label]——, and the end of the data is a similar footer like this: ——END [label]——. The «[label]» section describes the message, so it might read PRIVATE KEY, CERTIFICATE REQUEST, or CERTIFICATE.
Here’s an example:
One PEM file can contain multiple certificates, in which case the «END» and «BEGIN» sections neighbor each other.
Still Can’t Open the File?
One reason your file doesn’t open in any of the ways described above is that you’re not actually dealing with a PEM file. You might instead have a file that just uses a similarly spelled file extension. When that’s the case, there isn’t a necessity for the two files to be related or for them to work with the same software programs.
For example, PEF looks an awful lot like PEM but instead belongs to either the Pentax Raw Image file format or Portable Embosser Format. Follow that link to see how to open or convert PEF files, if that’s what you really have.
The same could be said for many other file extensions like EPM, EMP, EPP, PES, PET. you get the idea. Just double-check the file extension to see that it actually reads «.pem» before considering that the methods above don’t work.
If you’re dealing with a KEY file, be aware that not all files that end in .KEY belongs in the format described on this page. They might instead be Software License Key files used when registering software programs like LightWave, or Keynote Presentation files created by Apple Keynote.