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

CSR: извлечь PKCS # 10, содержащийся в PKCS # 7

Привет, eveyone: давай посмотрим, сможет ли кто-нибудь мне помочь;) Я в этой области совсем новичок, поэтому будьте осторожны. На моей работе кто-то сдал мне CSR. Этот CSR представляет собой запрос PKCS # 10, заключенный в запрос PKC # 7. Моя задача - извлечь этот запрос PKCS # 10. Я нашел эту страницу "Анализ CSR не прошел". Я прочитал абзац с названием"Преобразование запроса на обновление, созданного IIS7 Certificate Request # PKCS7 - DER в CSR в формате # PKCS10 - PEM"Он говорит вам, как это сделать.

Я сделал это, как они объясняют, но после выполнения последней команды (с моими собственными именами):

openssl req -inform der -in csr.der -out mynewcsr.csr

У меня такая ошибка:

unable to load X509 request
9288:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1198:
9288:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:372:Type=X509_REQ_INFO
9288:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:694:Field=req_info, Type=X509_REQ

Я исследовал, и, похоже, это ошибка формата. Некоторые файлы (исходный file.csr один или промежуточные csr.der one) должен быть в недопустимом формате, поэтому одна из используемых мной команд не может его обработать.

Я уверен, что строка, полученная из pkcs # 7 в формате ASN1, является правильной.

Я не могу показать вам исходный, но он закодирован в Base64 и начинается и заканчивается:

-----BEGIN CERTIFICATE REQUEST-----
(...)
-----END CERTIFICATE REQUEST-----

Любая идея?

Заранее спасибо.

PS: Сейчас выхожу из офиса. Я проверю возможные ответы завтра утром, очень рано.

Я сталкивался с чем-то подобным в прошлом, и использование openssl для преобразования сертификатов из того, что они были, в то, что мне было нужно, работало.

Этот веб-сайт, кажется, достаточно хорошо описывает команды, но я ничего не знаю об их автоматическом инструменте, поэтому используйте его с осторожностью, если вы идете по этому пути.

https://www.sslshopper.com/ssl-converter.html

Вы также можете попробовать сайт digicert, на нем есть много полезной документации и инструментов для начинающих. Некоторое время я довольно активно их использовал, пока не привык к инструменту openssl в Linux.

Также возможно актуально:

https://stackoverflow.com/questions/4691699/how-to-convert-crt-to-pem

Для справки я добавил сюда команды:

Конвертировать PEM в DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Конвертировать PEM в P7B

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

Конвертировать PEM в PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Конвертировать DER в PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

Конвертировать P7B в PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Конвертировать P7B в PFX

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

Конвертировать PFX в PEM

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

Если пойти немного глубже, CSR создается с использованием закрытого ключа. Если CSR имеет неправильный формат и вам нужно использовать существующий закрытый ключ (например, не удается создать новый), вы можете попробовать преобразовать закрытый ключ, а затем создать новый CSR. Затем сообщите центру сертификации, в каком формате выдавать новый сертификат. Это должно устранить несовместимость.

Как всегда, сделайте резервную копию того, что у вас есть, прежде чем что-либо пробовать.