对于上下文,我试图用M2Crypto代替Python-RSA,但这个问题实际上不是语言或库特定的。
如果我有一个X509格式的RSA公钥(以---- BEGIN PUBLIC KEY ---开头),我需要做什么才能将其转换为PKCS1(以---- BEGIN RSA PUBLIC KEY开头) ----)格式?
This thread似乎描述了相反的方向。
答案 0 :(得分:3)
本质上,您需要OpenSSL(Linux应用程序)。使用OpenSSL,您可以运行以下命令将X509转换为PKCS1:
openssl rsa -pubin -in x509_public.key -RSAPublicKey_out > rsa_public.key
我必须从PFX文件中提取SSL证书和PKCS1-Key。为此,我使用了以下命令:
openssl pkcs12 -in pfx_file.pfx -clcerts -nokeys -out certificate.cer
(提取证书)
openssl pkcs12 -in pfx_file.pfx -nocerts -nodes -out rsa_pair.key
(提取RSA密钥对)
openssl rsa -in rsa_pair.key -out rsa_private.key
(提取RSA私钥)
openssl rsa -in rsa_pair.key -pubout -out x509_public.key
(提取“错误的” X509公钥)
openssl rsa -pubin -in x509_public.key -RSAPublicKey_out > rsa_public.key
(最后提取RSA-PKCS1公钥)
可能有一些更好的方法,但是我花了很长时间才到达这里。我希望我可以从漫长的网上搜索中拯救别人。