OpenSSL 无法在后端加载证书

OpenSSL unable to load certificate on backend

我创建了我的 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

然而,我一直被类似的所困:

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

我还检查了其他一些 and 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 部分来自哪里?

有什么建议可能是我的错误吗?非常欢迎所有评论:)

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

你必须解密它

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

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

$猫联合国protected.key yourcert.crt > yourcert.pem

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

确保您的证书是 Windows "compatible",最重要的是每行末尾没有 ^M

如果你打开它,它会是这样的:

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

解决"this"用Write或Notepad++打开它并把它转换成Windows"style"