Преобразование DER в PEM, без ключевой части в результирующем файле

Я преобразовал сертификат CER / DER примерно так:

openssl x509 -inform der -in hostname.cer -out hostname.pem

Результирующий файл PEM содержит только:

-----BEGIN CERTIFICATE-----
... contents here.. 
-----END CERTIFICATE-----

Но в нем нет ключевой части, это нормально? Поэтому я не могу использовать его в PHP / SOAPClient, потому что он не подключается к хосту.

С другой стороны, я успешно преобразовал формат PFX / P12 в PEM, и полученный файл содержит как сертификат, так и ключ. Но в приведенном выше случае сертификата формата DER это не так.

Я использовал для преобразования PFX в PEM:

openssl pkcs12 -in ALEXANDRU_CATALIN.pfx -clcerts -nokeys -out ALEXANDRU_CATALIN_mycert.pem
openssl pkcs12 -in ALEXANDRU_CATALIN.pfx -nocerts -nodes -out ALEXANDRU_CATALIN_mykey.pem

Затем объедините содержимое обоих файлов в один под названием bundle.pem. Это сработало, я закончил с файлом с сертификатом и ключом бота, и он подключает через SOAP к API, но, как я уже сказал, DER в PEM не дает мне сертификат, который будет работать.

Есть идеи по этому поводу? Я что-то упускаю? Формат DER не содержит ключа? Мне еще что-нибудь нужно?


person Alexandru Trandafir Catalin    schedule 09.01.2018    source источник
comment
Stack Overflow - это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. Какие темы можно задать здесь в Справочном центре. Возможно, суперпользователь или Unix и Linux Stack Exchange лучше спросить.   -  person jww    schedule 10.01.2018


Ответы (2)


Файл сертификата DER не будет содержать закрытый ключ. Таким образом, нет закрытого ключа для преобразования. Только PFX или «multi-PEM» могут содержать как сертификат, так и закрытый ключ.

person bartonjs    schedule 09.01.2018

По умолчанию открытый ключ не конвертируется.

НО вы можете экспортировать его, добавив аргумент -pubkey

openssl x509 -inform der -in hostname.cer -out hostname.pem -pubkey

предоставит вам файл PEM, как показано ниже:

-----BEGIN PUBLIC KEY-----
{...}
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
{...}
-----END CERTIFICATE-----

Ссылка: документация X509

person Camille G.    schedule 09.01.2018
comment
Хорошо, но хм в PFX to PEM у меня есть сертификат и закрытый ключ, почему в вашем примере открытый ключ? это будет работать для подключения? Извините, но я не понимаю разницы между DER и PFX и открытым / закрытым ключом. Будет ли это работать так же, когда я подключаюсь к SOAP API? - person Alexandru Trandafir Catalin; 09.01.2018
comment
В любом случае я попробую посмотреть, работает ли мыльный вызов с преобразованным таким образом сертификатом. - person Alexandru Trandafir Catalin; 09.01.2018
comment
Это сработало не так, как ожидалось, я имею в виду, что он не включил в него часть открытого ключа. Но вся история в том, что 1) я преобразовал PFX в PEM, 2) затем использовал sslshopper.com, чтобы преобразовать этот PEM в DER 3) Наконец, попытался преобразовать обратно DER в PEM - person Alexandru Trandafir Catalin; 09.01.2018
comment
Сертификат (закодированный в DER или PEM) не содержит закрытого ключа. Файл * .pfx - это архив PCKS12, содержащий несколько файлов и в большинстве случаев сертификат и связанный с ним закрытый ключ. - person Camille G.; 09.01.2018