bg-blog-articles

Объяснение расширений файлов CRT и CER

Вы только что получили файлы SSL-сертификата и заметили два расширения: .crt и .cer. Ваш сервер ожидает одно из них, а Ваш центр сертификации (ЦС) прислал другое. Прежде чем Вы приступите к устранению неполадок, вот краткий ответ: оба расширения файлов содержат одни и те же данные сертификата X.509, а разница заключается в основном в соглашении об именовании.

CER против CRT

Но в этом предложении слово «в основном» выполняет тяжелую работу. Предпочтения платформ, форматы кодирования и конфигурации серверов могут превратить простое переименование в неудачную установку. В этом руководстве Вы узнаете, что такое файлы .CRT и .CER, чем они отличаются и как конвертировать их между собой, ничего не нарушая.


Оглавление

  1. Что такое файл .CRT?
  2. Что такое файл .CER?
  3. ЭЛТ против CER: в чем разница?
  4. PEM против DER: Кодировка, которая действительно имеет значение
  5. Как определить, какая у Вас кодировка
  6. Как преобразовать ЭЛТ в CER
  7. Другие форматы файлов сертификатов, которые Вы должны знать
  8. Какое расширение Вам следует использовать?
  9. ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Сэкономьте 10% на SSL-сертификатах, сделав заказ в SSL Dragon сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузерам, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете

Что такое файл .CRT?

Файл .CRT — это файл сертификата, в котором хранится сертификат X.509 с открытым ключом. Он содержит открытый ключ владельца сертификата, идентификационную информацию (например, имя домена или организации) и цифровую подпись ЦС, который его выдал.

Расширение .CRT используется по умолчанию в системах Unix и Linux. Если Вы настраивали SSL/TLS на Apache, Nginx или большинстве других веб-серверов на базе Linux, Вы, скорее всего, работали с файлами .CRT. Они почти всегда закодированы в формате PEM — текстовый файл в формате Base64 ASCII, который можно открыть в любом текстовом редакторе. Вы увидите содержимое, завернутое между заголовками ——BEGIN CERTIFICATE—— и ——END CERTIFICATE——.


Что такое файл .CER?

В файле .CER также хранится сертификат открытого ключа X.509 с теми же данными — открытый ключ, идентификационные данные и подпись ЦС. Содержимое идентично тому, что находится в файле .CRT.

Расширение .CER более распространено в системах Windows. Когда Вы экспортируете сертификаты из Microsoft IIS, Windows Certificate Manager или Active Directory Certificate Services, по умолчанию на выходе получается файл .CER. Эти файлы могут быть в формате PEM (текст в формате Base64) или в формате DER (двоичный файл). Кодировка зависит от того, как был экспортирован файл, а не от самого расширения файла.


ЭЛТ против CER: в чем разница?

Различия между CER и CRT

Технически, функциональной разницы между файлами .CRT и .CER нет. Оба хранят сертификаты X.509, оба могут использовать кодировку PEM или DER, и оба служат одной и той же цели в конфигурациях SSL/TLS. Различия сводятся к условностям, настройкам платформы по умолчанию и ожиданиям сервера.

Характеристика.CRT.CER
Данные сертификатаСертификат открытого ключа X.509Сертификат открытого ключа X.509
Общая платформаUnix / LinuxWindows
Типичное кодированиеPEM (Base64 ASCII)DER (двоичный) или PEM
ИспользуетсяApache, Nginx, OpenSSLIIS, инструменты Windows, Java (DER)
Человекочитаемый?Да (когда PEM)Только в случае PEM-кодирования
Содержит закрытый ключ?Нет (только для публичных сертификатов)Нет (только для публичных сертификатов)
Взаимозаменяемые?ДаДа

Основной вывод: Расширение файла не определяет кодировку. Файл .CER может иметь PEM-кодировку, а файл .CRT может иметь DER-кодировку. Важно содержимое файла, а не его расширение.


PEM против DER: Кодировка, которая действительно имеет значение

Поскольку .CRT и .CER — это, по сути, одно и то же, реальное различие, которое необходимо понять, заключается в двух форматах кодирования, которые могут использовать оба расширения: PEM и DER.

PEM (Privacy-Enhanced Mail) — это текстовый формат, который кодирует данные сертификата в Base64 ASCII. Файлы PEM являются человекочитаемыми — Вы можете открыть их в Блокноте, VS Code или любом другом текстовом редакторе и увидеть содержимое Base64 между заголовками BEGIN/END. PEM — это стандартный формат для Apache, Nginx и большинства серверных программ с открытым исходным кодом.

DER (Distinguished Encoding Rules) — это двоичный эквивалент. Файлы DER содержат те же данные сертификата, но в необработанном двоичном виде, поэтому их нельзя прочитать в текстовом редакторе. Кодировка DER широко распространена в средах на базе Java и хранилищах сертификатов Windows.

ХарактеристикаPEMDER
КодированиеBase64 ASCII текстБинарные
Можно ли читать в текстовом редакторе?ДаНет
Размер файлаНемного большеМеньше
Общие расширения.crt, .cer, .pem.cer, .der
Типичные платформыLinux, Apache, NginxWindows, Java
Можно ли хранить несколько сертификатов?Да (объединены в один файл)Нет (один сертификат на файл)

Как определить, какая у Вас кодировка

Вы не всегда можете определить кодировку только по расширению файла. Но есть два быстрых способа проверить:

1. Откройте файл в текстовом редакторе. Если Вы видите ——BEGIN CERTIFICATE——, за которым следует блок текста в формате Base64, это PEM-кодировка. Если файл выглядит как тарабарщина или беспорядочные символы, это DER-кодировка.

2. Используйте OpenSSL для его проверки. Выполните следующую команду, чтобы попытаться прочитать файл в формате PEM:

openssl x509 -in certificate.crt -text -noout

Если это приведет к ошибке, попробуйте прочитать его в формате DER:

openssl x509 -in certificate.cer -inform der -text -noout

Какая бы команда ни вернула данные о сертификате, она сообщит Вам формат кодировки.


Сэкономьте 10% на SSL-сертификатах, сделав заказ в SSL Dragon сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузерам, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете

Как преобразовать ЭЛТ в CER

Процесс преобразования зависит от того, меняете ли Вы только расширение файла или также конвертируете формат кодировки.

Та же кодировка — просто переименуйте

Если оба файла используют одну и ту же кодировку (оба PEM или оба DER), Вы можете переименовать расширение напрямую. Никаких изменений данных при этом не требуется:

Linux / macOS

mv certificate.crt certificate.cer

Windows (Командная строка)

ren certificate.crt certificate.cer

От PEM к DER (и наоборот)

Если Вам нужно изменить кодировку — например, Ваш сервер ожидает DER-кодировку .CER, а у Вас PEM-кодировка .CRT — используйте OpenSSL:

Преобразуйте PEM (.CRT) в DER (.CER):

openssl x509 -in certificate.crt -outform der -out certificate.cer

Конвертируйте DER (.CER) в PEM (.CRT):

openssl x509 -in certificate.cer -inform der -outform pem -out certificate.crt

Использование мастера экспорта сертификатов Windows

Если Вы предпочитаете использовать графический интерфейс в Windows:

  1. Дважды щелкните по файлу сертификата, чтобы открыть его.
  2. Перейдите на вкладку Детали и нажмите Копировать в файл.
  3. В Мастере экспорта сертификатов выберите двоичный X.509 (.CER) в кодировке DER или X.509 (.CER) в кодировке Base-64, затем сохраните с желаемым расширением.

Совет по устранению неполадок: Если Ваш сервер отклоняет сертификат после преобразования, дважды проверьте формат кодировки — не только расширение. Файл .CER в формате PEM не будет работать там, где ожидается DER, даже если расширение правильное.


Другие форматы файлов сертификатов, которые Вы должны знать

Помимо .CRT и .CER, в процессе управления SSL Вы столкнетесь с несколькими другими расширениями файлов сертификатов. Вот краткая справка:

УдлинительФорматПример использования
.PEMBase64 ASCII текстУниверсальный; может хранить сертификаты, закрытые ключи и цепочки сертификатов.
.DERБинарныеОдин сертификат в двоичном формате; распространен в средах Java
.PFX / .P12Двоичный (PKCS#12)Соедините сертификат + закрытый ключ + цепочку в одном файле, защищенном паролем
.P7B / .P7CBase64 ASCII (PKCS#7)Только цепочка сертификатов — без закрытого ключа; используется в Windows и Java
.KEYPEM или DERФайл закрытого ключа (не сертификат, но часто используется в паре с .CRT)

Среди них особого внимания заслуживают файлы .PFX (PKCS#12). В отличие от файлов .CRT и .CER, которые содержат только открытый сертификат, файлы PFX объединяют сертификат, закрытый ключ и промежуточные сертификаты в один зашифрованный файл. Вы часто будете использовать PFX при импорте сертификатов в Windows IIS или при их экспорте для резервного копирования.


Какое расширение Вам следует использовать?

Ответ зависит от Вашего сервера и операционной системы:

Используйте .CRT, если Вы используете Apache, Nginx или любой другой веб-сервер на базе Linux/Unix. Эти платформы ожидают сертификаты в PEM-кодировке, а расширение .CRT является стандартным.

Используйте .CER, если Вы работаете с Microsoft IIS, Windows Server или другими системами на базе Windows. Расширение .CER — это то, что инструменты Windows генерируют и ожидают по умолчанию.

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


ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Являются ли файлы .CRT и .CER одним и тем же?

Функционально — да. Оба хранят данные сертификата открытого ключа X.509 и могут использовать кодировку PEM или DER. Разница заключается в соглашении об именовании: .CRT является стандартным для Linux/Unix, .CER — для Windows.

Могу ли я просто переименовать .CRT в .CER?

Если в обоих случаях используется один и тот же формат кодирования, то да. Но если Вам нужно перейти с кодировки PEM на кодировку DER (или наоборот), используйте OpenSSL для преобразования содержимого файла, а не только расширения.

Содержат ли файлы .CRT или .CER закрытый ключ?

Нет. Оба расширения хранят только открытый сертификат. Закрытые ключи хранятся в отдельных файлах (обычно .KEY) или упаковываются в контейнеры PKCS#12 (.PFX/.P12).

Какая кодировка нужна моему серверу?

Apache и Nginx обычно нуждаются в кодировке PEM. Microsoft IIS и Java-приложения часто используют DER. Обратитесь к документации по настройке SSL Вашего сервера, чтобы узнать конкретные требования.


Нижняя линия

Спор между CRT и CER больше связан с соглашениями о названиях, чем с техническими различиями. Оба расширения хранят сертификаты X.509, и оба могут быть закодированы в формате PEM или DER. Главное — подобрать правильную кодировку в соответствии с требованиями Вашего сервера — и OpenSSL упрощает процесс преобразования.

Если Вам нужен надежный SSL-сертификат для Вашего сайта, SSL Dragon предлагает широкий выбор надежных сертификатов от таких ведущих центров сертификации, как DigiCert, Sectigo и GeoTrust. Независимо от того, работаете ли Вы на Apache, Nginx или IIS, Вы получите нужные файлы вместе с пошаговой поддержкой по установке. Просмотрите SSL-сертификаты на ssldragon.com и обеспечьте безопасность своего сайта уже сегодня.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.