Перейти к содержимому
ecdsa.com

PKCS #12 (PFX)

Защищённый паролем формат архива из RFC 7292, обычно в файлах .p12 или .pfx, который объединяет закрытый ключ с его цепочкой сертификатов для импорта в браузеры, Windows, macOS, Java и Android.
Другие написанияPFXP12.p12.pfxPKCS#12

Файл PKCS #12 — это структура PFX: аутентифицированное содержимое (authenticated safe) с пакетами (keyBag, pkcs8ShroudedKeyBag, certBag, crlBag, secretBag), у которых есть понятные имена (friendly name) и локальные идентификаторы ключей, а также MAC для проверки целостности, вычисленный на основе пароля. RFC 9579 (2024) добавляет PBMAC1, который заменяет устаревший способ вывода ключа MAC, специфичный для PKCS #12, на PBKDF2.

Совместимость определяют алгоритмы по умолчанию. OpenSSL 3.6.5 в режиме pkcs12 -export шифрует и сертификаты, и ключи алгоритмом AES-256-CBC с PBKDF2 (2 048 итераций) и вычисляет MAC на основе HMAC-SHA-256; с флагом -legacy он использует RC2-40 для сертификатов, 3DES для ключа и MAC на основе HMAC-SHA-1, чего требуют старые версии Windows, macOS и Java. В Java PKCS #12 служит типом хранилища ключей по умолчанию начиная с JDK 9.

Ошибка вроде «mac verify failure» обычно означает неверный пароль, а «unsupported algorithm RC2-40-CBC» — что устаревший файл открыли без провайдера legacy в OpenSSL. Инспектор PFX локально показывает пакеты и алгоритмы, не экспортируя ключ.

Стандарты и ссылки

Все термины