如何从 X509 转换为 PKCS1 编码的 RSA 密钥

bjm*_*jmc 2 rsa m2crypto x509 pkcs#1

对于上下文,我尝试在 M2Crypto 中使用来代替 Python-RSA,但这个问题并不是真正特定于语言或库的。

如果我有 X509 格式的 RSA 公钥(以 ----BEGIN PUBLIC KEY--- 开头),我需要做什么才能将其转换为 PKCS1(以 ----BEGIN RSA PUBLIC KEY--- 开头) -) 格式?

这条线索似乎描述了走向相反的方向。

小智 5

本质上您需要 OpenSSL(Linux 应用程序)。使用 OpenSSL,您可以运行以下命令将 X509 转换为 PKCS1:

openssl rsa -pubin -in x509_public.key  -RSAPublicKey_out > rsa_public.key
Run Code Online (Sandbox Code Playgroud)

我必须从 PFX 文件中提取 SSL 证书和 PKCS1 密钥。为此,我使用了以下命令:

openssl pkcs12 -in pfx_file.pfx -clcerts -nokeys -out certificate.cer
Run Code Online (Sandbox Code Playgroud)

(提取证书)

openssl pkcs12 -in pfx_file.pfx -nocerts -nodes -out rsa_pair.key
Run Code Online (Sandbox Code Playgroud)

(提取RSA密钥对)

openssl rsa -in rsa_pair.key -out rsa_private.key
Run Code Online (Sandbox Code Playgroud)

(提取RSA私钥)

openssl rsa -in rsa_pair.key -pubout -out x509_public.key
Run Code Online (Sandbox Code Playgroud)

(提取“错误的”X509公钥)

openssl rsa -pubin -in x509_public.key  -RSAPublicKey_out > rsa_public.key
Run Code Online (Sandbox Code Playgroud)

(最后提取RSA-PKCS1公钥)

可能有一些更好的方法,但我搜索了很长时间才到达这里。我希望我可以让其他人免于在网络上进行漫长的搜索。