MikroTik: failed to import PKCS#12 bundle bad password — Решение
- При импорте сертификата
.p12или.pfxв меню/certificate importпоявляется ошибка:certificate,error failed to import PKCS#12 bundle: bad password. - Пароль от контейнера вводится гарантированно верный, однако RouterOS отклоняет файл.
- Не удается загрузить связку сертификата и закрытого ключа для SSTP, OpenVPN, HTTPS или IKEv2.
1. Причина сбоя: OpenSSL 3.x и устаревшие алгоритмы шифрования PFX
Начиная с OpenSSL 3.0 (Ubuntu 22.04+, Debian 12+, современные версии Easy-RSA), контейнеры PKCS#12 по умолчанию шифруются современными алгоритмами (PBKDF2 с SHA-256 и AES-256-CBC). Старые версии RouterOS v6 и ранние v7 поддерживают только классические алгоритмы шифрования контейнеров (3DES / RC2-40 / SHA1).
2. Перепаковка PKCS#12 контейнера с флагом Legacy
Выполните перепаковку файла .p12 на компьютере администратора перед загрузкой в MikroTik:
# Экспорт сертификата и приватного ключа с использованием legacy шифрования:
openssl pkcs12 -in bundle.p12 -nodes -out temp.pem
# Сборка обратно в PKCS#12, совместимый со всеми версиями RouterOS:
openssl pkcs12 -export -in temp.pem -out mikrotik_bundle.p12 \
-keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg sha1 \
-legacy -name "server-cert"
# Удаление временного незашифрованного файла
rm temp.pem3. Альтернативный метод: Раздельный импорт CRT и KEY
# 1. Извлечь сертификат
openssl pkcs12 -in bundle.p12 -clcerts -nokeys -out cert.crt
# 2. Извлечь приватный ключ в формате RSA (PKCS#1 / PKCS#8)
openssl pkcs12 -in bundle.p12 -nocerts -nodes -out cert.key
# 3. Загрузить файлы cert.crt и cert.key на MikroTik через Files
# 4. Выполнить импорт по очереди:
/certificate import file-name=cert.crt passphrase=""
/certificate import file-name=cert.key passphrase=""4. Проверка появления закрытого ключа (флаги KR)
/certificate print detail where name="server-cert"В выводе обязательно должны присутствовать флаги K (Private Key) и R (RSA/Valid).
Частые вопросы (FAQ)
Что означают флаги 'KR' в выводе /certificate print?
Флаг 'K' означает, что закрытый ключ (Private Key) успешно импортирован и ассоциирован с сертификатом. Флаг 'R' означает, что сертификат валиден и готов к использованию в криптографических сервисах.
Почему пустой пароль вызывает ошибку при экспорте из Windows Certificate Export Wizard?
Windows требует задания пароля для экспорта закрытого ключа. При импорте в MikroTik этот пароль нужно указать точно в поле passphrase команды import.
Поддерживает ли RouterOS v7 эллиптические кривые (ECDSA) в PKCS#12?
Да, RouterOS v7 поддерживает ключи ECDSA и Ed25519, но контейнеры PKCS#12 должны быть собраны без использования алгоритмов шифрования, отсутствующих в криптоядре конкретной версии.
Как удалить поврежденный или некорректно импортированный сертификат?
Выполните команду /certificate remove [ find name="имя_сертификата" ].