openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private.pkcs8.key
生成的私钥格式如下:
-----BEGIN PRIVATE KEY-----
pkcs8私钥内容
-----END PRIVATE KEY-----
openssl rsa -in private.pkcs8.key -out private.pkcs1.key
实际测试过程中openssl版本不同,由pkcs8私钥转pkcs1私钥的结果会有不同
例如:openssl version
OpenSSL 1.1.1a 20 Nov 2018
-----BEGIN RSA PRIVATE KEY-----
pkcs1私钥内容
-----END RSA PRIVATE KEY-----
该版本转化前和转化后,由pkcs8私钥转得的pkcs1私钥,和其转换的来源pkcs8私钥,两者格式(即上下BEGIN和END-----里面的内容-----)和密钥内容都不一样。
openssl version
OpenSSL 3.1.4 24 Oct 2023 (Library: OpenSSL 3.1.4 24 Oct 2023)
-----BEGIN PRIVATE KEY-----
pkcs1私钥内容(和pkcs8私钥内容一模一样)
-----END PRIVATE KEY-----
但该版本由pkcs8私钥转得的pkcs1私钥,和其转换的来源pkcs8私钥,两者的不管是格式还是密钥内容一模一样。由此推定该版本的openssl生成的私钥都是pkcs8格式标准的。
openssl rsa -in private.pkcs8.key -pubout -out public.pkcs8.pem
该命令在不同版本openssl间产生的同样格式,
-----BEGIN PUBLIC KEY-----
pkcs8公钥内容
-----END PUBLIC KEY-----
openssl rsa -pubin -in public.pkcs8.pem -RSAPublicKey_out -out public.pkcs1.pem
该命令在不同版本openssl间产生的同样格式,但pkcs8公钥内容和由其转得的pkcs1公钥内容不一样。
-----BEGIN RSA PUBLIC KEY-----
pkcs1公钥内容
-----END RSA PUBLIC KEY-----
openssl genrsa -out private.pem 2048
该命令在不同版本(OpenSSL 1.1.1a 20 Nov 2018和OpenSSL 3.1.4 24 Oct 2023 (Library: OpenSSL 3.1.4 24 Oct 2023))间,前一个版本会生成pkcs1的私钥,后者会生成pkcs8的私钥。
openssl rsa -in public.pem -pubin -text -noout
openssl rsa -in private.pem -text -noout
PKCS#1 转 PKCS#8:
openssl rsa -RSAPublicKey_in -in
PKCS#8 转 PKCS#1:
openssl rsa -pubin -in
本文为big4ever.com原创文章,转载无需和我联系,但请注明来自www.big4ever.com
最新评论