【问题标题】:How to convert from X509 to PKCS1 encoded RSA key如何从 X509 转换为 PKCS1 编码的 RSA 密钥
【发布时间】:2014-02-16 00:50:00
【问题描述】:
对于上下文,我正在尝试在 M2Crypto 中使用代替 Python-RSA,但这个问题并不是特定于语言或库的。
如果我有一个 X509 格式的 RSA 公钥(以 ----BEGIN PUBLIC KEY--- 开头),我需要做什么才能将其转换为 PKCS1(以 ----BEGIN RSA PUBLIC KEY 开头----) 格式?
This thread 似乎描述了相反的方向。
【问题讨论】:
标签:
rsa
x509
m2crypto
pkcs#1
【解决方案1】:
基本上您需要 OpenSSL(Linux 应用程序)。使用 OpenSSL,您可以运行以下命令将 X509 转换为 PKCS1:
openssl rsa -pubin -in x509_public.key -RSAPublicKey_out > rsa_public.key
我必须从 PFX 文件中提取 SSL 证书和 PKCS1 密钥。为此,我使用了以下命令:
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公钥)
可能有一些更好的方法,但我搜索了很长时间才到这里。我希望我可以让其他人免于通过网络进行长时间的搜索。