Получить файл .cer из файла .pem

13

Я сгенерировал закрытый ключ RSA, используя следующую команду:

openssl genrsa -out privkey.pem 2048

И создал самозаверяющий сертификат, используя следующую команду:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 3650

Сейчас я пытаюсь преобразовать Cacert .pem файл в сертификат .cer

Есть идеи?

Devarshi
источник
1
Согласно support.ssl.com/Knowledgebase/Article/View/19/0/… .pem является кодировкой и .cerявляется расширением. Коротко: .cerфайл может содержать как кодировку, так PEMи DERкодировку. Что именно вам нужно? (Ссылка должна вам помочь.)
Фабиан
Я нашел команду для создания самозаверяющего сертификата по этой ссылке: openssl.org/docs/HOWTO/certificates.txt Вот полный текст: Если вы не хотите иметь дело с другим центром сертификации или просто хотите создать тестовый сертификат для себя. Это похоже на создание запроса сертификата, но создает запрос вместо запроса сертификата.
Деварши
Это на самом деле не отвечает тому, что вам нужно: какова цель генерируемого вами сертификата? Может быть, сервер HTTPS? Или личная аутентификация для какого-то приложения? Но я думаю, что вы уже получили достаточно хороших ответов ниже на то, что вы спросили.
Фабиан
Сценарий таков: мы создаем пару открытый-закрытый ключ в приложении для Android, и нам нужно предоставить общий ключ для приложения iOS, единственный способ, которым я нашел его, - это самозаверяющий сертификат. iOS apis извлекает открытый ключ из сертификата с этим расширением (пример): some_certificate.cer. Сейчас я пытаюсь сгенерировать some_certificate.cer через терминал и проверить, может ли он извлечь из него открытый ключ и выполнить шифрование с использованием того же самого.
Деварши
Я не могу помочь вам с iOS. Но я понимаю, что расширение .cer используется только Microsoft. Если приведенные ниже ответы не помогут вам, вы можете спросить об этом в разделе, посвященном программированию для iOS.
Фабиан

Ответы:

37

Вы можете использовать следующую команду:

openssl x509 -inform PEM -in cacert.pem -outform DER -out certificate.cer
cioby23
источник
2

.cer - это тип файла для кодировки DER или Base64, если я правильно помню.

openssl x509 -in cacert.pem -out cacert.cer -inform pem -outform der для формата DER.

отметка
источник
1

Фактическое продление не имеет значения для сертификатов. Обычно файлы .pem имеют сертификат x509 в форме, закодированной в base64. Файлы .cer могут быть в формате base64 или DER (Windows распознает и то, и другое). В зависимости от вашего приложения вам необходимо выяснить, какой формат сертификата требуется приложению.

Для преобразования между base64 (PEM) и кодировкой DER:

openssl x509 -in cert.pem -outform pem -outform der -out cert.cer
mtak
источник