Как создать файл crt

Обновлено: 04.07.2024

В этой статье мы рассмотрим что такое сертификаты, какими они бывают, разберем подробно создание сертификата OpenSSL. Причем рассмотрим каждый этап, чтобы вам было легче понять что и как происходит.

Что такое сертификаты?

В этой инструкции мы будем иметь дело с такими видами ключей:

  • .pem, .crt, .cer - готовый, подписанный центром сертификации сертификат, расширения разные, но означают одно и то же. Если совсем просто, то сертификат, это подписанный открытый ключ, плюс немного информации о вашей компании;
  • .key - закрытый или открытый ключ;
  • .csr - запрос на подпись сертификата, в этом файле хранится ваш открытый ключ плюс информация, о компании и домене, которую вы указали.

А теперь рассмотрим как создать сертификат openssl, как его подписать и что для этого нужно сделать. Генерация ключей openssl - это довольно простая задача, если во всем разобраться.

Создание закрытого ключа и запроса на подпись

Вам необязательно подписывать сертификаты в центре сертификации CA, вы можете подписать их сами, но об этом потом. Весь процесс вам так и так придется пройти. Сначала рассмотрим как создать закрытый ключ с нуля, и указать необходимую информацию. Это CN, где должно быть указанно ваше доменное имя, для которого вы собираетесь использовать сертификат, также можно указать дополнительную информацию о вашей компании, адресе и организации, но это уже необязательно.

Чтобы создать закрытый ключ и запрос на подпись открытого ключа выполните такую команду:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

Опция -newkey указывает, что нужно создать новую пару ключей, а в параметрах мы сообщаем тип rsa и сложность 2048 байт. Опция -nodes указывает, что шифровать ключ не нужно, опция -new указывает что нужно создать запрос csr. Если у вас уже есть закрытый ключ, то вы можете создать для него csr запрос такой командой:

openssl req -key domain.key -new -out domain.csr

Во время создания вам нужно будет указать всю необходимую информацию для csr, это в первую очередь домен и организация. Можно создавать закрытый ключ отдельно:

openssl genrsa -des3 -out domain.key 2048

openssl x509 -in domain.crt -signkey domain.key -x509toreq -out domain.csr

Параметр -x509toreq указывает, что нужно использовать сертификат для X509 для получения CSR. X509, это сертификаты, подписанные сами собой. Обычно сертификат подписывается другим сертификатом, а этот был подписан сам собой. Если вы получили сертификат от CA, то этот параметр не нужен.

Подпись сертификатов OpenSSL

Первый способ я рассматривать не буду. Здесь все просто. Либо используете утилиту сервиса, либо заполняете веб форму и получаете готовый сертификат. Второй вариант гораздо интереснее. Мы подпишем наш сертификат сами, ключом, на основе которого он был создан:

openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt

С помощью параметра -days мы указываем что сертификат будет действительным в течение 365 дней, то есть в течение года. Вы можете объединить все в одну команду и сразу создать закрытый ключ, csr и подписанный сертификат:

openssl req -newkey rsa:2048 -nodes -keyout domain.key
-x509 -days 365 -out domain.crt

Или создаем самоподписанный сертификат openssl из существующего закрытого ключа без csr:

openssl req -key domain.key -new -x509 -days 365 -out domain.crt

Опция -new говорит, что нужно запросить информацию о csr у пользователя. Чтобы браузер доверял ключу нужно этот же сертификат импортировать в список доверенных. А теперь рассмотрим третий способ выполнить создание сертификата OpenSSL - подписать его с помощью собственного CA, центра сертификации.

Вот вы сейчас думаете что это что-то такое сложное, да? А нет, это обычная папка, в которой лежит защищенный паролем закрытый ключ, с помощью которого мы будем подписывать все другие ключи. А открытая пара этого ключа должна быть добавлена во все браузеры, которые будут ему доверять.

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

Дальше нужно создать самоподписанный сертификат openssl для нашего CA:

openssl req -newkey rsa:4096 -x509 -extensions x509_ca -keyout /etc/ca/certs/ca.key -out /etc/ca/certs/ca.crt -days 3654

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

openssl ca -extensions x509_client -in

Готово, теперь наш сертификат подписан. Но теперь, чтобы браузеры ему доверяли нужно добавить сертификат CA в список доверенных браузера.

Просмотр сертификатов

Сертификаты сохраняются в формате pem, а это значит, что вы не сможете их открыть как текстовый файл и нужно использовать специальные команды для просмотра информации о них. Сначала смотрим содержимое csr:

openssl req -text -noout -verify -in domain.csr

Смотрим содержимое сертификата в режиме обычного текста:

openssl x509 -text -noout -in domain.crt

Проверяем действительно ли сертификат подписан нужным CA:

openssl verify -verbose -CAfile ca.crt domain.crt

Просмотр закрытого ключа:

openssl rsa -check -in domain.key

Чтобы проверить связаны ли между собой закрытый ключ, сертификат и открытый ключ можно подсчитать сумы md5 для этих ключей, если значения совпадут, то есть вероятность что это ключи из одной пары:

openssl rsa -noout -modulus -in domain.key | openssl md5
$ openssl x509 -noout -modulus -in domain.crt | openssl md5
$ openssl req -noout -modulus -in domain.csr | openssl md5

Выводы

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

Файлы CRT и KEY из PFX

Сделать файлы CRT и KEY из PFX может потребоваться в том случае, если вы используете какое-либо UNIX/Linux-приложение с поддержкой доступа по SSL. Чаще всего это веб-приложения. В противовес этому подходу Windows использует сертификаты в формате .pfx для хранения пары закрытый-открытый ключи враз, разумеется с защитой паролем при попытке экспорта.

SSL-сертификаты на данный момент распространены повсеместно и работать с ними приходится постоянно.

Как только все формальности пройдены, на почту вы получите архив с нужным вам сертификатом в формате .crt (и всей цепочкой промежуточных на всякий случай).

CRT и KEY из PFX

Воспользуемся всем знакомой утилитой openssl, чтобы вытащить открытую часть pfx-сертификата:

$ openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.crt

Нужно будет ввести пароль, который вы указывали при экспорте .pfx-сертификата. Теперь попробуем извлечь закрытую часть сертификата, поместив её в отдельный запароленный файл:

$ openssl pkcs12 -in certificate.pfx -nocerts -out key-encrypted.key

После выполнения команды вам придется ввести не только пароль, который использовался для экспорта .pfx-сертификата, но и новый пароль, необходимый для защиты .key-файла. Далее вы вполне можете использовать все полученные ранее файлы сертификата для настройки какого-либо сервиса, использующего SSL (например Apache или Nginx).

Закрытый ключ сертификата с парольной защитой не всегда удобно использовать на реальном окружении. Например тот же Apache будет спрашивать пароль при каждом рестарте сервиса, что будет требовать человеческого участия. Обойти проблему можно, сняв пароль с закрытого ключа:

$ openssl rsa -in key-encrypted.key -out key-decrypted.key

Будьте крайне осторожны в этом случае, чтобы не допустить компрометацию закрытого ключа. Установите на файл соответствующие права, чтобы никто кроме вас не имел к нему доступ:

$ chmod 600 key-decrypted.key

KEY и CRT в PFX

Ну а теперь рассмотрим обратную процедуру

Сшивание двух файлов ключей — открытого и закрытого — может потребоваться для сервисов на базе Windows, которые привыкли видеть сертификаты в формате .pfx. Также в некоторых случаях хранить пары ключей удобнее именно в формате pfx.

Примечание: если вы генерировали csr-запрос на стороне сервера Windows, то вам придется его завершить, подсунув файл .crt, который вам позже пришлет ваш ЦС. В итоге экспортировать сертификат из оснастки MMC вы сможете именно в формате .pfx. Иной вариант — если csr создавался с помощью утилиты openssl. В этом случае вероятно у вас уже будут crt и key, которые потребуется собрать в pfx.

Собрать crt и key в pfx можно командой:

$ openssl pkcs12 -inkey certificate.key -in certificate.crt -export -out certificate.pfx

Как только нажмете Enter, нужно будет ввести пароль от файла закрытого ключа (если этот пароль есть), а также пароль для экспорта в pfx. После этого смело используйте файл на серверах Windows, но не забудьте при импорте отметить ключ экспортируемым (иначе экспортировать ключ потом не получится).

В этой статье мы рассмотрели как сделать файлы CRT и KEY из PFX и обратно. Надеюсь, вам она была полезна.

Favorite

Добавить в избранное

Главное меню » Debian » Как создать файл .CRT в Linux?

(1 оценок, среднее: 5,00 из 5)

Как создать файл .CRT в Linux?

Эта статья ответит на ваш вопрос о создании файла сертификата .CRT в Linux с помощью инструмента OpenSSL.

Предпосылки

  • Система с ядром Linux
  • Пользователь с привилегиями sudo

Установить OpenSSL

Если OpenSSL еще не установлен, выполните следующую команду.

В дистрибутивах на основе Ubuntu/Debian:

В дистрибутивах на основе CentOS/Red Hat:

Синтаксис использования инструмента OpenSSL:

Получите закрытый ключ и файл запроса на подпись сертификата

Затем выполните первую команду ниже, чтобы сгенерировать свой закрытый ключ. Вторая команда выведет файл запроса на подпись сертификата (CSR).

Вот описание каждой команды и параметра.

  • genrsa. Создать закрытый ключ RSA
  • -out. Выходной файл
  • -req. Запрос на подпись сертификата
  • -new. Новый запрос
  • -key. Путь к файлу приватного ключа

Для подписи сертификата SSL/TLS вам потребуется ваш закрытый ключ. Файл CSR будет содержать информацию об объекте для создания сертификата SSL/TLS. Вам будет предложено ввести свою информацию соответственно.

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

Создать файл .CRT

После создания закрытого ключа и файлов CSR пора создать файл .crt.

Ниже приводится описание каждой команды и параметра.

  • x509. Стандарт управления данными сертификата
  • -req. Запрос на подпись сертификата
  • -days. Количество дней, в течение которых сертификат должен быть действителен
  • -in. Путь к файлу CSR
  • –signkey. Путь к файлу закрытого ключа для подписи сертификата
  • -out. Выходной файл для подписанного сертификата

Ваш файл с расширением .CRT будет сохранен в текущем рабочем каталоге, если вы не указали другой путь.

Заключение

Следуя этой статье, вы должны теперь создать файл с расширением .CRT с помощью инструмента OpenSSL. Технически это самозаверяющий сертификат, который предназначен для внутреннего использования или тестирования и разработки. Основные веб-браузеры не доверяют самозаверяющим сертификатам.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

KEY Обычно относится к закрытому ключу.

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

CRT Это аббревиатура сертификата, то есть сертификата.

X.509 Это формат сертификата. Для сертификатов X.509 сертификатом всегда является CA или лицо, назначенное CA. Сертификат X.509 - это набор некоторых стандартных полей, которые содержат информацию о пользователях или устройствах и их соответствующих открытых ключах.

Файлы сертификатов X.509 обычно заканчиваются на .crt. В зависимости от формата кодировки содержимого файла его можно разделить на следующие Два формата :

PEM -Privacy Enhanced Mail, откройте его, чтобы увидеть текстовый формат, начните с «----- BEGIN . » и закончите с «----- END . », содержимое в кодировке BASE64. Серверы Apache и * NIX предпочитают использовать этот формат кодировки.

DER Различающиеся правила кодирования, открытые для просмотра двоичного формата, нечитаемые. Серверы Java и Windows предпочитают использовать этот формат кодировки.

1) Создать личный ключ

  • genras Используйте алгоритм rsa для генерации ключа.
  • -des3 (Необязательно) Ключ шифрования. В настоящее время вам необходимо установить пароль. При последующем использовании ключа необходимо подтвердить пароль, прежде чем использовать его.
  • -out Создайте файл закрытого ключа.

2) Создайте файл запроса сертификата (CSR)

  • req Создайте команду приложения выдачи сертификата.
  • -new Новое приложение.
  • -key Файл ключа ввода генерируется первым шагом.
  • -out Выходные данные - это файл CSR, который является файлом запроса.

После запуска этой команды для входа в интерактивный режим вам необходимо ввести некоторую информацию о сертификате.

Как правило, необходимо ввести следующую информацию:

3) Самозаверяющий сертификат

Для обычного сертификата вы отправляете файл запроса (.CSR), сгенерированный выше, доверенному органу (CA), позволяете доверенному органу генерировать и подписывать сертификат в соответствии с вашим запросом, а затем отправляете его обратно вам. Здесь, чтобы подписать для себя.

Вышеупомянутые два шага 2 и 3 могут быть объединены в один шаг для выполнения:

Сохраните шаг создания файлов запроса.

Генерация сертификата CA завершена.

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

1) Создать приватный ключ сервера

  • genras Используйте алгоритм rsa для генерации ключа.
  • -out Создайте файл закрытого ключа.

2) Создайте файл запроса сертификата (CSR)

Описание параметра такое же, как и в предыдущем разделе.

3) Используйте сертификат CA для подписи и создания файла crt

  • Единственное различие между сертификатом CA и сертификатом сервера состоит в том, когда он окончательно подписан, независимо от того, подписываете ли вы его самостоятельно или разрешаете кому-либо подписывать его для вас.
  • В реальном приложении необходимы файлы закрытых ключей (ключей) и сертификатов (crt). Файл закрытого ключа очень важен и не должен быть обнародован. Файл сертификата может распространяться по желанию.
  • Если файл сертификата crt добавлен в доверенный корневой орган, сертификат и все подписанные сертификаты будут доверенными. Затем вы можете создать сертификат CA в организации, добавить сертификат CA в список доверенных, а затем все остальные сертификаты в организации будут подписаны этим сертификатом, и вам нужно будет доверять ему только один раз.

Способ использования ssl в nginx заключается в добавлении следующего выражения в файл конфигурации:

В IIS необходим файл PFX, который должен содержать ключ и crt. Метод генерации заключается в следующем:

При выполнении вышеуказанной команды вам будет предложено ввести пароль для экспорта. Этот пароль требуется при импорте файла pfx.

Выберите «Импортировать сертификат» в IIS, выберите файл pfx в качестве файла, введите пароль при экспорте и выберите «Персональный» в качестве места импорта.

Если вы хотите изменить понятное имя сертификата, измените его в управлении сертификатами (необходимо открыть диспетчер сертификатов на уровне компьютера из mmc).

Chrome проверит, объявлено ли текущее доменное имя в сертификате, что задается полем subjectAltName. Вышеупомянутый шаг генерации не устанавливает это поле по умолчанию.

Решение заключается в следующем:

Создайте новый файл и назовите его v3.ext (назовите свой собственный), и отредактируйте содержимое следующим образом:

Имя домена должно совпадать с именем домена, фактически связанным с вашим сертификатом. Если есть несколько доменных имен, напишите несколько в соответствии с примером.

При подписании добавьте дополнительный параметр:-extfile v3.ext

1) Создать файл запроса сертификата (CSR) неинтерактивно через файл конфигурации

Создайте новый файл, такой как my.cnf, и измените соответствующие поля в соответствии с вашими потребностями:

При создании файла запроса добавьте дополнительные параметры: ** - config my.cnf **

2) Генерация ключей и файлов CRT в одном предложении

Эта ситуация подходит для самозаверяющих сертификатов.

Запрошенная конфигурация и внешняя конфигурация могут быть записаны вместе следующим образом

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.

Конвертация SSL сертификатов в OpenSSL

    Конвертировать 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

Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файлSSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.

Обратите внимание, что для конвертации стандартного формата SSL сертификата необходимо добавить еще один файл – ваш приватный ключ. Приватный ключ – это конфиденциальная информация, которая должна быть только у вас. Поэтому центры сертификации не высылают его месте с файлами вашего сертификата. Приватный ключ создается в момент генерации CSR запроса. Если вы генерируете CSR у себя на сервере, на нем же должен автоматически сохраниться ключ. Если вы создаете CSR запрос в специальном инструменте на нашем сайте (на странице по ссылке или во время заполнения технических данных), ключ показывается вам в конце генерации CSR (или введения технических данных), но не сохраняется в нашей базе данных. Поэтому важно, чтобы вы самостоятельно сохранили приватный ключ.

Читайте также: