Назад | Перейти на главную страницу

OpenSSL не может преобразовать PKCS12, экспортированный из Cisco ASA 55xx

Я экспортировал существующий сертификат + ключ из ASA 5510:

asa5510(config)# crypto ca export MYTRUSTSTORE pkcs12 MYPASSWORD

Сохраненный вывод в файл (vpn-cisco.pkcs12), и теперь я пытаюсь вытащить сертификат и ключ в отдельные файлы, например:

openssl pkcs12 -in cisco-vpn.pkcs12 -nocerts -out privateKey.pem

Я получаю ошибку:

139708630054816:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
139708630054816:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=PKCS12

Та же ошибка, если я бегу openssl pkcs12 -info ... или любой другой командой.

Я попытался снова экспортировать файл и сравнить, используя ASDM вместо CLI, но файл точно такой же.

Поиск в Google об ошибке только говорит, что кодировка файла может быть каким-то образом отключена, но без конкретных деталей.

Это странно. У меня такая же проблема, и на этот вопрос нет ответа. Затем я продолжил поиск и нашел yaleman.org сообщение, в котором говорится, что они нашли ответ и связаны с этот самый вопрос. Но ответа здесь не было. Задним числом исправляя это, полный реквизит yaleman.

Вкратце: вам нужно преобразовать pfx из Base64 в двоичный формат openssl.

$ openssl enc -base64 -d -in certfile.pfx -out converted.pfx

Затем вы можете преобразовать его в PEM и получить ключ или сертификат отдельно.

$ openssl pkcs12 -in converted.pfx -out bundle.pem -clcerts -nodes

Если у вас возникли проблемы с декодированием, проверьте свой файл и удалите в нем все пустые строки. Наш ASA сохранял их с начальными пробелами, а openssl это не нравится.