【发布时间】:2017-03-12 10:41:33
【问题描述】:
我创建了我的 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 部分来自哪里?
有什么建议可能是我的错误吗?非常欢迎所有 cmets :)
【问题讨论】:
-
SSH 密钥 != SSL 证书。你想达到什么目的?
-
嗨@Jakuje!我用过:我用过: ssh-keygen -f myKey.key.pub -e -m pem > myKey.pem 。那么应该用什么作为证书呢?真的非常感谢。
-
要获得 SSL/TLS 证书,您使用您的 private 密钥(在您的情况下以及许多但不是所有其他情况下,OpenSSH private 密钥文件与 OpenSSL 兼容)生成 证书签名请求 aka CSR 并将 CSR 提交给证书颁发机构(即 CA)以获取证书。如果您希望陌生人信任您的服务器,您需要使用公共 CA,例如 Verisign、GoDaddy、LetsEncrypt 等。如果只有您或认识您的朋友/同事会连接,您可以使用 openssl 创建自己的临时 CA ,甚至是自签名证书(无 CA)。
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
标签: c ssh openssl backend ssh-keys