linux - 无法使用 openssl 获取私钥(没有起始行 :pem_lib. c:703:Expecting: ANY PRIVATE KEY)

标签 linux openssl ssl-certificate private-key

我有一个 .key 文件,当我这样做的时候

openssl rsa -text -in file.key

我明白了

unable to load Private Key
140000419358368:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

我还有一个 .cer 文件,当我这样做的时候

openssl x509 -text -in file.cer

我明白了

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

但如果如指出的那样here我运行如下命令:

openssl x509 -text -inform DER -in file.cer

我明白了

Certificate:
    Data:
        Version: 3 (0x2)
        Some more information
        ...
-----BEGIN CERTIFICATE-----
MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEF
...
-----END CERTIFICATE-----

但这似乎不适用于 key ,因为当我运行时

openssl rsa -text -inform DER -in aaa010101aaa__csd_10.key

我明白了

unable to load Private Key
140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337:
140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849:
140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=RSA
140004844304032:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337:
140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849:
140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=PKCS8_PRIV_KEY_INFO

如何获取私钥及其证书?

最佳答案

我在 Windows 上使用 openssl 时遇到了“Expecting: ANY PRIVATE KEY”错误(Ubuntu Bash 和 Git Bash 有同样的问题)。

问题的原因是我使用 UTF8 在记事本中保存了 key 和证书文件。以 ANSI 格式重新保存这两个文件解决了这个问题。

关于linux - 无法使用 openssl 获取私钥(没有起始行 :pem_lib. c:703:Expecting: ANY PRIVATE KEY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630544/

相关文章:

C : how can I change from file descriptor to FILE struct and vice versa?

linux - 为什么不同版本的 RHEL 中 df -m $PWD|awk {'print $4' } 的输出不同

authentication - CA 更新后的客户端证书

.net - 从函数应用服务的代码中加载证书

ssl - CNAMES 如何与 SSL 证书一起使用

linux - 如何在不降低安全性的情况下修复 openssl 问题 "tls_process_ske_dhe:dh key too small"

c - 用 C 语言以编程方式终止 scanf

c - 在 openSSL 中手动设置 AES key ?

openssl - 没有可用的对等证书

ssl - 我们如何使用开放 SSL 创建 TLS v1.2 证书