У меня есть пара сертификатов, формат которых кажется очень похожим, за исключением одного, что я проверил детали сертификата, используя следующую команду openssl
openssl x509 -in certname -text
В одном из сертификатов информация об открытом ключе субъекта отображается следующим образом
Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit)
Другой выглядит как
Subject Public Key Info: Public Key Algorithm: rsaEncryption Public Key: (1024 bit)
Я создал сертификат, используя следующую команду
openssl genrsa -out my.key 1024
openssl req -new -key my.key -config -out my.req
openssl ca -out my.crt -infiles my.req
Мой сертификат содержит открытый ключ: (1024 бит), а не «Открытый ключ RSA: (1024 бит)»
Что нужно сделать иначе, чтобы получить в сертификате «Открытый ключ RSA: (1024 бит)»? Мой my.key начинается с
-----BEGIN RSA PRIVATE KEY-----
так что это ключ RSA.
Вы действительно сравниваете вывод одного и того же openssl x509
утилитой даны разные входные файлы? Различный вывод, о котором вы спрашиваете, по-видимому, просто различается между версиями OpenSSL. Например, openssl-0.9.8e имеет такой код:
BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","",
BN_num_bits(pkey->pkey.rsa->n));
Однако openssl-1.0.0 имеет немного другой текст:
if (BIO_printf(bp,"Public-Key: (%d bit)\n", mod_len)
<= 0) goto err;
(обратите внимание, что фактический текст Public-Key
не Public Key
). Таким образом, вывод одного и того же сертификата может отличаться в зависимости от того, какую версию OpenSSL вы используете для дампа файла, и ваши файлы, содержащие RSA Public Key: (1024 bit)
были просто выгружены как текст с использованием старой версии OpenSSL.