Как преобразовать закрытый ключ PEM в формате PKCS#8 в традиционный формат?

Из OpenSSL 1.0 журнал изменений:

Сделайте PKCS#8 форматом записи по умолчанию для закрытых ключей, заменив традиционный формат. Эта форма стандартизирована, более безопасна и не включает в себя неявную зависимость MD5. [Стив Хенсон]

Однако мне нужен файл закрытого ключа в предыдущем традиционном формате. Можно ли преобразовать файл pem из PKCS#8 в традиционный формат (с помощью приложения OpenSSL.exe)?

Большое спасибо!

3 ответа

Решение

Успешно решить это таким образом - запрос:

openssl req -configconfigfile.cfg -newkey rsa:2048 -keyout newkey.pem -out newreq.pem 365

Затем я преобразовал его в формат RSA:

openssl rsa -in newkey.pem -out newkey.pem

Надеюсь, что это кому-то поможет.

Использование Openssl 3.0: https://www.openssl.org/docs/man3.0/man1/openssl-pkey.html

Преобразование из PKCS#1 в PKCS#8:

      $ cat pkcs1.pem
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
$ openssl pkey -in pkcs1.pem
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

Преобразование из PKCS#8 в PKCS#1:

      $ cat pkcs8.pem
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
$ openssl pkey -in pkcs8.pem -traditional
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

См /questions/34036365/razlichiya-mezhdu-begin-rsa-private-key-i-begin-private-key/34036387#34036387 для описания PKCS#1 и PKCS#8.

  1. закрытый ключ rsa

Чтобы преобразовать PKCS#1 в PKCS#8:

openssl pkcs8 -topk8 -inform pem -in private_pkcs1.pem -outform pem -nocrypt -out private_pkcs8.pem

Чтобы преобразовать PKCS#8 в PKCS#1:

openssl rsa -in private_pkcs8.pem -out private_pkcs1.pem

  1. открытый ключ rsa

Чтобы преобразовать PKCS#8 в PKCS#1:

openssl rsa -pubin -in public_pkcs8.pem -RSAPublicKey_out -out public_pkcs1.pem

Чтобы преобразовать PKCS#1 в PKCS#8:

openssl rsa -RSAPublicKey_in -in public_pkcs1.pem -pubout -out public_pkcs8.pem

Другие вопросы по тегам