我创建了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
我还检查了其他一些comments和suggestions。但问题仍然存在:
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部分来自哪里?
任何建议可能是我的错误?所有评论都非常欢迎:)
答案 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”