Я отвечаю за обслуживание двух серверов Debian. Каждый раз, когда мне нужно что-то делать с сертификатами безопасности, я гугляю по учебникам и отбиваю, пока все не заработает.
Однако в своих поисках я часто сталкиваюсь с разными форматами файлов (.key
, .csr
, .pem
) но я так и не смог найти хорошее объяснение цели каждого формата файла.
Мне было интересно, могут ли хорошие люди здесь в ServerFault дать некоторые разъяснения по этому вопросу?
SSL существует достаточно долго, и вы думаете, что будут согласованы форматы контейнеров. И ты прав, есть. Слишком много стандартов, как это происходит. Так что это то, что я знаю, и я уверен, что другие будут вмешиваться.
/etc/ssl/certs
) или может включать в себя всю цепочку сертификатов, включая открытый ключ, закрытый ключ и корневые сертификаты. Смущает, что он также может кодировать CSR (например, как используется здесь ), поскольку формат PKCS10 может быть переведен в PEM. Название от Privacy Enhanced Mail (PEM) , неудачный метод для защищенной электронной почты, но формат контейнера, в котором он используется, является переводом base64 ключей ASN.1 x509./etc/ssl/private
. Права на эти файлы очень важны, и некоторые программы откажутся загружать эти сертификаты, если они установлены неправильно.openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Несколько других форматов, которые появляются время от времени:
openssl x509 -inform der -in to-convert.der -out converted.pem
). Windows видит их как файлы сертификатов. По умолчанию Windows экспортирует сертификаты как файлы в формате .DER с другим расширением. Подобно....keystore
как расширение. В отличие от сертификатов стиля .pem, этот формат имеет способ определен для включения сертификатов пути сертификации.Таким образом, существует четыре различных способа представления сертификатов и их компонентов:
Надеюсь, это поможет.
PEM сам по себе не является сертификатом, это просто способ кодирования данных. Сертификаты X.509 - это один тип данных, который обычно кодируется с использованием PEM.
PEM является сертификатом X.509 (структура которого определяется с использованием ASN.1), кодируется с использованием DER ASN.1 (отличительные правила кодирования), затем проходит через кодирование Base64 и застревает между строками привязки простого текста (BEGIN CERTIFICATE и END CERTIFICATE). ).
Вы можете представлять одни и те же данные, используя представления PKCS # 7 или PKCS # 12, и для этого можно использовать утилиту командной строки openssl.
Очевидное преимущество PEM заключается в том, что его можно вставить в текст сообщения электронной почты безопасно, поскольку он имеет якорные строки и является 7-битным чистым.
RFC1422 содержит более подробную информацию о стандарте PEM в том, что касается ключей и сертификатов.
Иногда .crt
файл уже является .pem
. Смотрите: https://stackoverflow.com/questions/991758/openssl-pem-key