Привет, 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. Затем сообщите центру сертификации, в каком формате выдавать новый сертификат. Это должно устранить несовместимость.
Как всегда, сделайте резервную копию того, что у вас есть, прежде чем что-либо пробовать.