В чем разница между .pem
,.cer
и .der
?
Насколько мне известно, .cer
содержит открытый ключ. Существуют ли какие-либо открытые платформы, которые я могу использовать для шифрования моих данных с помощью этого открытого ключа?
В чем разница между .pem
,.cer
и .der
?
Насколько мне известно, .cer
содержит открытый ключ. Существуют ли какие-либо открытые платформы, которые я могу использовать для шифрования моих данных с помощью этого открытого ключа?
cp
может подойти команда :)
Ответы:
.pem
, .cer
и .der
все расширения файлов для файлов, которые могут содержать сертификат X.509 v3.
.der
расширениеDER - это метод кодирования данных, составляющих сертификат. Сам DER может представлять любые данные, но обычно он описывает закодированный сертификат или контейнер CMS.
Структура сертификата описывается с использованием языка представления данных ASN.1. BER и DER - это методы двоичного кодирования данных, описанных в ASN.1.
.pem
расширениеPEM - это метод кодирования двоичных данных в виде строки (броня ASCII). Он содержит верхний и нижний колонтитулы (с указанием типа данных, которые закодированы, и с указанием начала / конца, если данные объединены в цепочку), а данные в середине являются данными base 64. В случае, если он кодирует сертификат, он будет просто содержать кодировку base 64 сертификата DER. PEM расшифровывается как Privacy Enhanced Mail; mail не может напрямую содержать незашифрованные двоичные значения, такие как DER.
PEM может также кодировать / защищать другие виды данных, относящиеся к сертификатам, такие как открытые / закрытые ключи, запросы сертификатов и т. Д. Если содержимое является общим сертификатом X509v3, то PEM кодируется как:
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
Обратите внимание, что файл PEM также может содержать полную цепочку сертификатов, где цепочка начинается с конечного / конечного сертификата службы, за которым следует сертификат, который ее подписал, обычно до, но не включая доверенный корневой сертификат. Поэтому, если вам не хватает сертификатов, вы можете взглянуть на первый.
.cer
Или .crt
расширение.cer
просто означает сертификат. Обычно это данные в кодировке DER, но Windows также может принимать данные в кодировке PEM. Вам необходимо взглянуть на содержимое (например, с помощью file
утилиты в системах posix), чтобы увидеть, что находится в файле, чтобы быть уверенным на 100%.
Взгляните на этот ответ, чтобы увидеть более обширный список того, что поддерживается OpenSSL.
Чтобы использовать открытый ключ, содержащийся в сертификате (и подписанный подписью в сертификате), вы должны использовать любую библиотеку, которая анализирует сертификаты X.509 и выполняет шифрование RSA. Вы можете использовать инструмент, который обнаруживает / обрабатывает кодировку PEM, или вы можете сначала преобразовать сертификат в DER, удалив кодировку PEM.
Командная строка OpenSSL содержит множество параметров для преобразования между PEM и DER, распечатки информации сертификата высокого уровня или анализа ASN.1, чтобы получить низкоуровневое представление о том, что там находится.
Как и большинство структур ASN.1, сертификат в кодировке DER всегда начинается с байта, 30
который является кодировкой тега ASN.1 SEQUENCE
. Если вы видите много повторений в файле, это нормально; это просто структура , которая строго определена.
Аналогичным образом, база 64 в файле, закодированном с помощью PEM, всегда начинается с буквы, M
поскольку ASN.1 SEQUENCE
начинается с байта 30
, поэтому первые 6 битов 001100
преобразуются в число 12, которое является индексом буквы M
, тринадцатая буква алфавита.