- Запрос к ЦС
- Конвертируем и устанавливаем сертификат
- Pfx сертификат (формат pkcs # 12)
- Pkcs # 7 / p7b сертификат
- Конвертация pem в der
- Конвертация pem в p7b / pkcs#7
- Конвертация pem в pfx / pkcs#12
- Конвертация pfx / pkcs#12 в pem
- Конвертация различных форматов сертификатов в требуемый
- Онлайн конвертер ssl сертификатов
- Формат сертификата der
- Экспорт сертификата в кодировке base-64.ссв
Запрос к ЦС
Подключаемся к web-серверу (web-srv.mydomain.local) и создаем запрос на выдачу сертификата:
Параметры:
Конвертируем и устанавливаем сертификат
Загруженный сертификат certnew.cer нужно передать на веб-сервер любым удобным способом и положить в папку /root. Конвертируем сертификат из DER в формат PEM:
Переносим файлы сертификата и ключа в предназначенные для них папки:
В случае использования запрещающего режима SELinux восстанавливаем контекст в папках с новыми ключем и сетрификатом:
В конфигурационных файлах apache, внутри нужного виртуального хоста с включенным SSL, меняем значение параметров:
Pfx сертификат (формат pkcs # 12)
Формат SSL сертификата PKCS # 12 или, как его еще называют, PFX сертификат — бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ.
Pkcs # 7 / p7b сертификат
SSL сертификаты в формате PKCS # 7 или P7B — это файлы, которые хранятся в формате Base64 ASCII и имеют расширение файла .p7b или .p7c. P7B сертификаты содержат теги начала сертификата «—— BEGIN PKCS7 ——» и его конца «—— END PKCS7 ——«.
Конвертация pem в der
Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файл SSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.
Конвертация pem в p7b / pkcs#7
Если же вам нужно преобразовать ваш стандартный SSL сертификат в файл формата P7B / PKCS#7, вы можете кроме SSL сертификата вашего домена загрузить также файлы с цепочками сертификатов.
Конвертация pem в pfx / pkcs#12
Обратите внимание, что для конвертации стандартного формата SSL сертификата необходимо добавить еще один файл – ваш приватный ключ. Приватный ключ – это конфиденциальная информация, которая должна быть только у вас. Поэтому центры сертификации не высылают его месте с файлами вашего сертификата.
Приватный ключ создается в момент генерации CSR запроса. Если вы генерируете CSR у себя на сервере, на нем же должен автоматически сохраниться ключ. Если вы создаете CSR запрос в специальном инструменте на нашем сайте (на странице по ссылке или во время заполнения технических данных), ключ показывается вам в конце генерации CSR (или введения технических данных), но не сохраняется в нашей базе данных. Поэтому важно, чтобы вы самостоятельно сохранили приватный ключ.
Конвертация pfx / pkcs#12 в pem
Если вам необходимо преобразовать SSL сертификат формата PFX в PEM-формат, следует открыть файл сертификата в любом текстовом редакторе и скопировать текст каждого сертификата вместе с тегами BEGIN / END в отдельные файлы, после чего их следует сохранить их как certificate.cer (для сертификата вашего сервера) и cacert.cer (для цепочки промежуточных сертификатов). То же самое следует проделать с текстом приватного ключа и сохранить его под названием privatekey.key.
Конвертация различных форматов сертификатов в требуемый
Для корректного использования сертификатов в текущем сервисе требуется, чтобы сертификаты были в формате PEM (закодированными в Base64 кодировке), аналогично формату, использующемуся в Apache.
Также необходимо, чтобы сертификаты хранились каждый в своем файле, т.е.
Рассмотрим наиболее часто встречаемые форматы и способы конвертации каждого из них в PEM формат.
Формат PEM.
Это целевой формат, в который нужно сконвертировать свои сертификаты, в случае если они находятся в других форматах.
Данные сертификата закодированы в Base64 формате. При открытии файлов данного типа в текстовом редакторе можно увидеть строки “BEGIN CERTIFICATE” для сертификатов, и “BEGIN RSA PRIVATE KEY” или “BEGIN PRIVATE KEY” для приватных ключей.
Обычно файлы имеют раширение.pem,.crt,.cer или.key.
Формат DER.
Это бинарная форма PEM формата. При открытии файлов данного типа в текстовом редакторе, строки BEGIN и END отсутствуют.
Обычно файлы имеют расширение.der или.cer.
Конвертация из DER в PEM :
openssl x509 -inform der -in c:cert.der -out c:cert.pem
Формат PKCS#7 или P7B.
Данные сертификата обычно закодированы в формате Base64, и он не может содержать приватных ключей. При открытии файлов данного типа в текстовом редакторе можно увидеть строки “BEGIN PKCS7” и “END PKCS7”.
Обычно файлы имеют расширение.p7b или.p7c.
Конвертация из P7B в PEM :
openssl pkcs7 -print_certs -in c:cert.p7b -out c:cert.pem
В случае затруднения в разделении на отдельные файлы, возможно, будет проще сконвертировать полученный на предыдущем шаге PEM файл и имеющийся приватный ключ (в PEM формате) в PFX формат, который затем сконвертировать в PEM формат, с разделением на отдельные файлы:
Конвертация из PEM в PFX :
openssl pkcs12 -export -out c:cert.pfx -inkey c:cert.key.pem -in c:cert.pem
Где:
- c:cert.pem – это выходной файл, полученный после конвертации из P7B в PEM, и содержащий как сертификат домена, так и сертификат(ы) центра сертификации
- c:cert.key.pem – это приватный ключ (в PEM формате)
- c:cert.pfx – это итоговый выходной PFX файл, который в дальнейшем можно конвертировать в PEM с разделением на отдельные файлы (см. пункт конвертация из PFX в PEM)
Формат PKCS#12 или PFX.
Данные представлены в бинарной форме. Это файл контейнер который содержит все сертификаты – сертификат(ы) центра сертификации, сертификат домена и его приватный ключ.
Обычно файлы имеют расширение.pfx или.p12.
Конвертация из PFX в PEM :
Назначение, удаление или изменение пароля приватного ключа :
openssl rsa -des3 -in c:old_cert.key.pem -out c:new_cert.key.pem -passin pass:old_password -passout pass:new_password
Для удаления пароля не указывайте параметр passout. В случае если исходный файл без пароля, то не указывайте параметр passin.
Онлайн конвертер ssl сертификатов
Также существуют онлайн программы для конвертации сертификатов из одного формата в другой. Например, мы можем посоветовать SSL конвертер от SSLShopper. Используйте этот SSL конвертер для преобразования SSL-сертификатов различных форматов, таких как PEM, DER, P7B и PFX.
Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его текущий тип (он определяется по формату расширения), затем выберите формат, в какой Вам необходимо преобразовать SSL сертификат и нажмите кнопку “Convert Certificate”. Обратите внимание, что в зависимости от того, в какой формат вам нужно конвертировать SSL сертификат, от вас потребуются разные исходящие файлы.
Формат сертификата der
DER формат – это бинарный тип сертификата вместо формата PEM. В PEM формате чаще всего используется расширение файла .cer, но иногда можно встретить и расширение файла .der. Поэтому чтобы отличить SSL сертификат в формате PEM от формата DER, следует открыть его в текстовом редакторе и найти теги начала и окончания сертификата (BEGIN/END). DER SSL сертификаты, как правило, используются на платформах Java.
Экспорт сертификата в кодировке base-64.ссв
Я пытаюсь экспортировать сертификат без закрытого ключа как файл в кодировке BASE-64, так же, как экспортировать его из windows. При экспорте из windows я могу открыть .файл cer в блокноте.
когда я пробую следующее и открываю в блокноте, я получаю двоичные данные…Думаю, да…нечитаемый.
X509Certificate2 cert = new X509Certificate2("c:myCert.pfx", "test", X509KeyStorageFlags.Exportable);
File.WriteAllBytes("c:testcer.cer", cert.Export(X509ContentType.Cert));
Я попытался удалить ‘ X509KeyStorageFlags.Exportable”, но это не работает. Я что-то упускаю?
Edit-I пробовал
File.WriteAllText("c:testcer.cer",Convert.ToBase64String(cert.Export(X509ContentType.Cert)))
и это, кажется, работает, однако, отсутствует “- – – – – начать сертификат – – – – – – ” и ” – – – – – конечный сертификат – – – – – -“