Я отвечаю за обслуживание двух серверов Debian. Каждый раз, когда мне нужно что-то делать с сертификатами безопасности, я искал в Google учебные пособия и старался, пока они, наконец, не сработали.
Однако в своих поисках я часто сталкиваюсь с разными форматами файлов (.key
, .csr
, .pem
), но мне так и не удалось найти хорошего объяснения того, для чего предназначен каждый формат файла.
Мне было интересно, могут ли хорошие ребята из ServerFault дать разъяснения по этому поводу?
SSL существует достаточно давно, можно подумать, что будут согласованы форматы контейнеров. И вы правы, есть. Слишком много стандартов, как это бывает. Так что это то, что я знаю, и я уверен, что другие поддержат меня.
/etc/ssl/certs
) или может включать всю цепочку сертификатов, включая открытый ключ, закрытый ключ и корневые сертификаты. Как ни странно, он также может кодировать CSR (например, как используется Вот), поскольку формат PKCS10 может быть переведен в PEM. Имя от Почта с улучшенной конфиденциальностью (PEM), неудачный метод защиты электронной почты, но используемый контейнерный формат продолжает жить и представляет собой преобразование ключей x509 ASN.1 в формате base64. /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), закодированный с использованием ASN.1 DER (отличительные правила кодирования), затем проходит через кодировку Base64 и застревает между строками привязки простого текста (BEGIN CERTIFICATE и END CERTIFICATE ).
Вы можете представить одни и те же данные, используя представления PKCS # 7 или PKCS # 12, и для этого можно использовать утилиту командной строки openssl.
Очевидные преимущества PEM заключаются в том, что его безопасно вставлять в тело сообщения электронной почты, потому что оно имеет якорные линии и является 7-битным чистым.
RFC1422 содержит более подробную информацию о стандарте PEM, связанном с ключами и сертификатами.
Иногда .crt
файл уже .pem
. Видеть: https://stackoverflow.com/questions/991758/openssl-pem-key