Как получить командную часть только из части сертификата и только из закрытого ключа соответственно из файла PEM? - PullRequest
0 голосов
/ 31 октября 2018

Преобразование файла PKCS # 12 (.pfx .p12), содержащего закрытый ключ и сертификаты, в PEM, например:

openssl pkcs12 -in cert_and_pvt_key.pfx -out cert_and_pvt_key.pem

тогда у меня есть файл PEM с сертификатом и закрытым ключом, теперь я хочу получить файл сертификата и файл закрытого ключа соответственно, да, я знаю, что cert_and_pvt_key.pem в текстовом формате, мы можем скопировать часть ключа и сертификат часть, как нам нравится, но это не элегантно, я хочу что-то сложное, как openssl pkcs12, есть что-нибудь доступное?

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете использовать опции -nocerts и -nokeys для openssl pkcs12, чтобы выводить только ту часть, которая вам нужна. Запустите openssl pkcs12 с каждым по очереди:

openssl pkcs12 -in cert_and_pvt_key.pfx -nokeys -out cert.pem

, то:

openssl pkcs12 -in cert_and_pvt_key.pfx -nocerts -out pvt_key.pem

Если у вас нет доступа к исходному файлу PKCS # 12, то это становится немного сложнее. Следующее должно работать:

openssl pkcs12 -export -in cert_and_pvt_key.pem | openssl pkcs12 -nokeys -out cert.pem

и

openssl pkcs12 -export -in cert_and_pvt_key.pem | openssl pkcs12 -nocerts -out pvt_key.pem

Тем не менее, при запросе PKCS # 12 запрашивается парольная фраза и еще раз, когда он пытается разделить файл на сертификат и ключи. OpenSSL предоставляет глагол -nodes для отключения этой парольной фразы, но, похоже, он не работает с -export. Поэтому в скрипте произойдет сбой.

В противном случае вы можете разделить файл на awk или аналогичный. На этом сайте множество примеров.

...