我创建了我的 SSH key 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 在哪里部分来自?
有什么建议可能是我的错误吗?非常欢迎所有评论:)
最佳答案
当您的 key 受密码保护时,可能会发生这种情况。
你必须解密它
$ openssl rsa -in protected.key -out unprotected.key
然后你必须创建一个新的 .pem 文件
$ cat unprotected.key yourcert.crt > yourcert.pem
我还建议您检查您的 key 和证书文件的行尾(openssl 不喜欢 Windows 的)和 BOM 标记。
确保您的证书与 Windows“兼容”,最重要的是每行末尾没有 ^M
如果你打开它,它会是这样的:
-----开始证书-----^M MIDITCCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM^M
要解决“this”问题,请使用 Write 或 Notepad++ 打开它,并将其转换为 Windows“样式”
关于c - OpenSSL 无法在后端加载证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40323703/