Ошибка импорта PFX в ManageEngine ServiceDesk

PFX SSL Logo

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik. В прошлый раз мы с вами научились производить установку обновлений на Windows 8.1 после 2023 года, когда публичная поддержка завершилась, так сказать выкрутились. Идем далее и сегодня я вам расскажу интересный случай с сертификатом, с которым я столкнулся на днях. Потребовалось мне произвести импортирование SSL сертификата на один сервис, так как уже подходил срок, вроде тривиальная задача, но она позволила прокачать немного знания. Сервис отказался работать с тем pfx архивом, что я ему предлагал, выдавая мне ошибку "Указан неправильный пароль для сертификата certificateEndReply.pfx". Давайте разбираться в чем дело и как это поправить.

Как устранить ошибку "The password you entered is incorrect"

Каждый год мне необходимо заменять SSL сертификат на ManageEngine ServiceDesk и сам процесс я описывал подробно. На шаге предварительной проверки файла, я получил ошибку:

Указан неправильный пароль для сертификата certificateEndReply.pfx.

Хотя я точно уверен в пароле который я вводил, так как сам генерировал PFX архив в OpenSSL.

Указан неправильный пароль для сертификата certificateEndReply.pfx

В логах Windows все было чисто, лопатить кучу журналов ManageEngine ServiceDesk мне было лень и я немного погуглил. Все дело оказалось в двух вещах:

  1. У ManageEngine ServiceDesk была установлена старая версия Java, что ограничивала криптоалгоритмы с которыми она могла работать
  2. Второй момент, для генерации pfx архива я использовал OpenSSL 3.3.1, а он по умолчанию делал pfx в AES256. В более старых версиях Java при попытке импорта такого сертификата будет вводящее в заблуждение сообщение об ошибке пароля "The password you entered is incorrect" (не может расшифровать, а других сообщений нет).

Самый простой метод выяснить ваш криптоалгоритм, это воспользоваться утилитой openssl. Выполните вот такую команду в cmd от имени администратора.

openssl pkcs12 -info -in имя_сертификата.pfx

Если на архиве есть пароль, то вас попросят его ввести, после чего вы получите подробнейший состав сертификатов. Нас будет интересовать поле "PKCS7 Encrypted data: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256".

метод выяснить ваш криптоалгоритм

AES256 - это симметричный алгоритм шифрования, который использует ключ длиной 256 бит (или 32 байта) для шифрования и дешифрования данных. AES расшифровывается как Advanced Encryption Standard (Стандарт расширенного шифрования) и является одним из самых распространенных алгоритмов шифрования, применяемых в настоящее время.

AES был выбран Национальным институтом стандартов и технологий (NIST) в 2001 году в качестве стандарта шифрования после конкурса, в котором участвовали различные алгоритмы. AES имеет различные варианты по длине ключа, такие как AES128, AES192 и AES256, которые соответственно используют ключи длиной 128, 192 и 256 бит.

AES256 считается очень надежным алгоритмом шифрования и обеспечивает высокий уровень безопасности для защиты конфиденциальной информации. Он широко применяется в различных областях, включая защиту данных в сети, шифрование файлов и другие приложения, где требуется надежная защита данных.

Понимая все это мне нужно AES256 конвертировать в TripleDES-SHA1 и сделать так, чтобы закрытый ключ в pfx можно было экспортировать

TripleDES (Triple Data Encryption Standard) - это симметричный алгоритм блочного шифрования, который использует три последовательных операции шифрования DES для увеличения уровня безопасности. DES (Data Encryption Standard) был разработан в 1970-х годах и использовался для шифрования данных, но со временем его ключ длиной 56 бит стал уязвимым к атакам. TripleDES усиливает защиту путем применения трех этапов шифрования DES.

Комбинация TripleDES-SHA1 означает, что данные сначала будут зашифрованы тройным шифрованием DES, а затем будет вычислен хеш SHA-1 от зашифрованных данных. Это может использоваться в различных системах для обеспечения безопасности и целостности данных. Однако важно помнить, что SHA-1 считается устаревшим и не рекомендуется для новых систем из-за потенциальных уязвимостей.

Конвертирование AES256 в TripleDES-SHA1 через mmc

Чтобы исправить, необходимо импортировать сертификат на поддерживающей шифрование pfx SHA256 платформе с галкой, разрешающей экспорт закрытого ключа, а потом экспортировать назад с шифрованием TripleDES-SHA1 если их предполагается использовать на старых версиях Windows.

Запускаем установку pfx с алгоритмом AES256. Я буду устанавливать сертификат для всей локальной машины.

Установка сертификата в систему

Находим через окно выбора ваш pfx архив и нажимаем далее.

Выбор pfx сертификата для установки

Введите пароль от архива если он есть, и обязательно выставите галку "Mark this key as exportable. This will allow you to back up or transport your keys at a later time"

Выбор галки для экспортирования закрытого ключа

Далее указываем, что сертификат будим помещать в личное хранилище, нажмите "Place all certificates in the following store", далее кнопка "Browse". В новом окне откройте раздел Personal, если хотите при желании, можете поставить в реестр.

Установка сертификата в реестр

Нажимаем далее.

Установка сертификата в реестр в личное хранилище

Завершаем импорт сертификата.

Завершение импортирования сертификата

Далее вызовите mmc оснастку и добавьте в нее сертификаты компьютера. Добавляем сертификаты локального компьютера.

Вызов оснастки сертификаты компьютера

Теперь просто нажмите "Ok", это добавит в оснастку нужный раздел с сертификатами.

Добавление оснастки сертификаты в mmc

Открываем личный раздел с сертификатами компьютера, находим нужный и щелкаем по нему правым кликом, из контекстного меню выберите пункт "Export".

Экспорт сертификата

В мастере экспорта поставьте, что будим экспортировать закрытый ключ, формат файла оставляем pfx, обязательно установите пароль и САМОЕ главное тип шифрования должен быть TripleDES-SHA1.

Экспорт сертификата в TripleDES-SHA1

Задаем имя для нашего сертификата и место сохранения.

Сохранение сертификата с типом TripleDES-SHA1

Теперь при попытке импортировать сертификат с алгоритмом TripleDES-SHA1 у вас не должны быть ошибки, и ManageEngine ServiceDesk легко его подхватывает.

Успешный импорт сертификата

Для самопроверки, выполните указанную выше команду и посмотрите тип шифрования.

MAC: sha1, Iteration 2000
MAC length: 20, salt length: 20
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2000
Bag Attributes
Microsoft Local Key set: <No Values>
localKeyID: 01 00 00 00
friendlyName: {B38E8E01-E2EE-489E-BC8B-136E9AC13891}
Microsoft CSP Name: Microsoft Enhanced Cryptographic Provider v1.0
Key Attributes
X509v3 Key Usage: 10

pbeWithSHA1And3-KeyTripleDES-CBC

Преобразование AES256 в TripleDES-SHA1 с помощью командной строки

Для того чтобы преобразовать AES256 в TripleDES-SHA1 запустите командную строку в режиме администратора, далее нужно на первом шаге получить файл в формате PEM, для этого выполните:

openssl.exe pkcs12 -in certAES256.pfx -out certAES256.pem

Где certAES256.pfx это имя PFX сертификата в формате AES256, а certAES256.pem это имя получаемого PEM файла. Далее сделаем конвертирование с помощью команды:

openssl.exe pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certAES256.pem -out cert-TripleDES.pfx -name "PBE-SHA1-3DES"

  • pkcs12 указывает на то, что операция выполняется с контейнером PKCS#12.
  • -keypbe PBE-SHA1-3DES и -certpbe PBE-SHA1-3DES задают алгоритм шифрования для ключа и сертификата соответственно.
  • -export указывает на то, что происходит экспорт ключа и сертификата.
  • -in certAES256.pem задает входной файл (certAES256.pem).
  • -out cert-TripleDES.pfx указывает на выходной файл (cert-TripleDES.pfx).
  • -name "PBE-SHA1-3DES" задает имя для нового контейнера PKCS#12.

Конвертирование AES256 в TripleDES-SHA1

Дополнительные алгоритмы:

  • PBE-MD2-DES
  • PBE-MD5-DES
  • PBE-SHA1-RC2-64
  • PBE-MD2-RC2-64
  • PBE-MD5-RC2-64
  • PBE-SHA1-DES
  • PBE-SHA1-RC4-128
  • PBE-SHA1-RC4-40
  • PBE-SHA1-3DES
  • PBE-SHA1-2DES
  • PBE-SHA1-RC2-128
  • PBE-SHA1-RC2-40
  • AES-256-CBC
  • hmacWithSHA256

Надеюсь, что у вас все получилось и вы разобрались. На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Дополнительные ссылки

  • https://serverfault.com/questions/942961/wrong-password-during-pfx-certificate-import-windows10-2016
  • https://bazanovv.livejournal.com/38828.html?ysclid=ly7a5xr6z96135077
  • https://github.com/dsccommunity/CertificateDsc/issues/153
  • https://hstechdocs.helpsystems.com/manuals/globalscape/archive/secureserver3/Converting_an_incompatible_PKCS_12_format_file_to_a_compatible_PKCS_12_.htm
Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *