将私有RSA txt文件转换为DER


1

我正在尝试将私有RSA密钥文件转换为DER证书。我获得了一个带有“.txt”扩展名的私有RSA密钥文件。此外,我还获得了RSA密钥的密码。我用openSSL 0.98尝试了几个命令,但它们似乎都没有用:

我的私钥以a开头,下面没有加密参数:

    -----BEGIN RSA PRIVATE KEY-----
<random characters..>

尝试#1:

openssl rsa -inform PEM -in SOME_RSA_Private_Key.txt -passin "SOMEPASS" -outform DER -out "SOME_RSA_Private_Key.der"
Invalid password argument "SOMEPASS"
Error getting passwords

尝试#2:

openssl rsa -inform PEM -in SOME_RSA_Private_Key.txt -passin pass:"SOMEPASS" -outform DER -out "SOME_RSA_Private_Key.der"

来自尝试#2的输出状态:

unable to load Private Key
45746:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/crypto/asn1/asn1_lib.c:153:
45746:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/crypto/asn1/tasn_dec.c:1331:
45746:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/crypto/asn1/tasn_dec.c:387:Type=RSA
45746:error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/crypto/asn1/d2i_pr.c:99:
45746:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/crypto/pem/pem_pkey.c:125:

我还尝试将“txt”扩展名重命名为“pem”并运行相同的命令,但结果仍然相同。

我不知道为什么我不能读这个文件?


可能PEM文件需要一点点清理。我将开始删除所有空格和换行符(除了在两个标题中)并清理它,使它看起来像一个典型的PEM文件,其行具有统一,合理的长度。
大卫施瓦茨2016年

还要确保PEM编码密钥在72个字符之前有换行符。它是过去时代的一种时代错误。早在20世纪80年代末编写PEM RFC时,确保互操作性就是一个有点任意的限制。我相信OpenSSL仍然会强制执行它,而许多其他库只是消耗它的呈现方式。
jww 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.