У мене є файл PKCS12, що містить повний ланцюжок сертифікатів та приватний ключ. Мені потрібно розбити його на 3 файли для програми. 3 потрібні мені файли (у форматі PEM):
- незашифрований файл ключів
- файл сертифіката клієнта
- файл сертифіката CA (кореневий та всі проміжні)
Це звичайне завдання, яке мені доводиться виконувати, тому я шукаю спосіб це зробити без будь-якого редагування результатів вручну.
Я спробував таке:
openssl pkcs12 -in <filename.pfx> -nocerts -nodes -out <clientcert.key>
openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out <clientcert.cer>
openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain -out <cacerts.cer>
Це добре працює, проте вихід містить атрибути мішка, з якими програма не знає, як впоратися.
Після деяких пошуків я знайшов запропоноване рішення продати результати через x509, щоб зняти атрибути мішка.
openssl x509 -in <clientcert.cer> -out <clientcert.cer>
Це працює, але у мене виникає проблема з файлом cacert. Вихідний файл містить лише один з 3-х сертів ланцюга.
Чи є спосіб уникнути включення атрибутів мішка у висновок команди pkcs12, або спосіб, щоб вихід команди x509 включав усі сертифікати? Крім того, якщо запуск через x509 є найпростішим рішенням, чи є спосіб передати вихід з pkcs12 в x509 замість того, щоб виписати файл двічі?