PKCS # 7 не включает частную (ключевую) часть пары сертификат / секретный ключ, он обычно используется для распространения сертификата (например, в качестве ответа на запрос сертификата PKCS # 10, как средство для распространения сертификатов S / MIME используется для шифрования сообщений или проверки подписанных сообщений и т. д.). Важно помнить, что это только для сертификатов, которые по определению являются общедоступными.
PKCS # 12 является более универсальным контейнером - он предназначен для хранения как закрытого ключа, так и частей открытого сертификата, чтобы их можно было перемещать. Он имеет возможность быть защищенным паролем, чтобы обеспечить некоторую защиту ключей.
PFX был предшественником PKCS # 12.
Вы не можете (как указывает Anitak) конвертировать из PKCS # 7 в PKCS # 12 без дополнительных данных (часть с закрытым ключом), потому что PKCS # 7 не имеет всех данных.
Марк Саттон указал, почему вы не можете экспортировать как PFX - у данного сертификата закрытый ключ помечен как неэкспортируемый. Поставщик криптографических услуг (CSP) не позволяет перемещать этот ключ, это сделано намеренно. Единственный * способ получить экспортируемую пару сертификат / ключ - это если исходный сертификат был выдан с установленным флагом экспорта. Также возможно, что нет никакого закрытого ключа, связанного с сертификатом, но я предполагаю, что это не тот случай.
В Википедии есть хорошее резюме различных типов PKCS .
- Единственный законный способ, по крайней мере. В зависимости от CSP \ Crypto Hardware могут существовать механизмы, особенно для программного обеспечения только CSP, но это область исследований уязвимостей безопасности, насколько мне известно, а не системного администратора.