OpenSSL无法在后端加载证书

时间:2016-10-29 21:10:05

标签: c ssh openssl backend ssh-keys

我创建了SSH密钥accordingly

ssh-keygen -t rsa -C "myemail@google.com"

这将给我两个文件:

myKey.key.pub
myKey.key

然后转换为pem格式我运行command

ssh-keygen -f myKey.key.pub -e -m pem > myKey.pem

myKey.pem是为后端C program提供的文件。

但是,我一直坚持使用类似的error

unable to load certificate
140387178489504:error:0906D06C:PEM routines:PEM_read_bio:no start     
line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE

所以,我遵循了steps

openssl rsa -text -in file.key -inform DER
openssl pkcs8 -in file.key -inform der

我还检查了其他一些commentssuggestions。但问题仍然存在:

error:0D0680A8:ASN1 encoding routines:ASN1CHECK_TLEN:wrong tag:tasn_dec.c:1338
error:0D07803A:ASN1 encoding routines:ASN1CHECK_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:390:Type=X509_SIG

此证书将与后端一起使用。或者获取文件pem的方法是手动创建和编辑它?如果是这样,certificate部分来自哪里?

任何建议可能是我的错误?所有评论都非常欢迎:)

1 个答案:

答案 0 :(得分:2)

当密钥受密码保护时,可能会发生这种情况。

你必须解密它

$ openssl rsa -in protected.key -out unprotected.key

然后你必须创建一个新的.pem文件

$ cat unprotected.key yourcert.crt> yourcert.pem

我还建议您检查密钥和证书文件的行结尾(openssl不喜欢Windows版本)和BOM标记。

确保您的证书与Windows“兼容”,最重要的是它在每行的末尾没有^ M

如果你打开它,它将如下所示:

-----开始证书----- ^ M. MIIDITCCAoqgAwIBAgIQL9 + 89q6RUm0PmqPfQDQ + mjANBgkqhkiG9w0BAQUFADBM ^ M

解决“this”用Write或Notepad ++打开它并将其转换为Windows“style”