OpenSSL:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE

 IvyShao520 发布于 2023-02-07 15:26

我需要一个用于在Stunnel的CApath目录中发布的文件的哈希名称.我在这个目录中有一些证书,他们运作良好.我还有一个服务器sert和服务器密钥:

cert = c:\Program Files (x86)\stunnel\server_cert.pem 
key = c:\Program> Files (x86)\stunnel\private\server_key.pem

当我尝试计算新证书的哈希时,我收到一个错误:

/ etc/pki/tls/misc/c_hash cert.pem

无法加载证书140603809879880:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE

据我所知,我必须签署我的证书,但我不明白我该怎么做.请提供解决方案.

PS:

消息

无法加载证书140603809879880:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE:

当我为cert.pem制作c_hash时发布这不是server_cert.pem,这是Root_CA,它的内容类似于

----- BEGIN CERTIFICATE -----
... 6UXBNSDVg5rSx60 = ..

-----结束证书-----

当我写作

openssl x509 -noout -text -in cert.pem

在控制台面板中,我看到这个信息:

/etc/pki/tls/misc/c_hash cert.pem

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

nrathaus.. 41

    由于您使用的是Windows,请确保您的Windows中的证书"兼容",最重要的是它^M在每行的最后都没有

    如果你打开它,它将如下所示:

    -----BEGIN CERTIFICATE-----^M
    MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM^M
    

    解决"这个"用Write或Notepad ++ 打开它并将其转换为Windows"风格"

    尝试运行openssl x509 -text -inform DER -in server_cert.pem并查看输出是什么,私钥/密钥不可能不受信任,只有从密钥库导出密钥时才需要信任,是吗?

我的问题不是这里描述的CRLF线路结尾,但这个建议足以让我走上正轨.我的问题是我的文件被保存为带有BOM的双字节Unicode,并且openssl for windows无法处理.我重新保存为ascii并且它有效. (3认同)

尝试运行这个`openssl x509 -hash -noout -in`它做哈希提取,看它是否有帮助? (2认同)


Rondo.. 29

另一个可能的原因是尝试在不是x509的东西上使用x509模块

服务器证书是x509格式,但私钥是rsa

所以,

openssl rsa -noout -text -in privkey.pem
openssl x509 -noout -text -in servercert.pem


小智.. 12

我的情况有点不同.解决方案是从CERTIFICATE和PRIVATE KEY部分之外的所有内容中剥离.pem并反转它们出现的顺序.从pfx转换为pem文件后,证书看起来像这样:

Bag Attributes
localKeyID: ...
issuer=...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Bag Attributes
more garbage...
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

纠正文件后,它只是:

-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----


SpiRail.. 9

我的错误只是使用CSR文件而不是CERT文件。

6 个回答
  • 使用BOM更改notepad ++ UTF-8中的编码。那就是对我有用的

    2023-02-07 15:27 回答
  • 另一个可能的原因是尝试在不是x509的东西上使用x509模块

    服务器证书是x509格式,但私钥是rsa

    所以,

    openssl rsa -noout -text -in privkey.pem
    openssl x509 -noout -text -in servercert.pem
    

    2023-02-07 15:27 回答
  • 我在使用Windows时遇到了同样的问题,如果通过在Notepad ++中打开并将编码从"UCS-2 LE BOM"更改为"UTF-8"得到修复.

    2023-02-07 15:27 回答
  • 我的情况有点不同.解决方案是从CERTIFICATE和PRIVATE KEY部分之外的所有内容中剥离.pem并反转它们出现的顺序.从pfx转换为pem文件后,证书看起来像这样:

    Bag Attributes
    localKeyID: ...
    issuer=...
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    Bag Attributes
    more garbage...
    -----BEGIN PRIVATE KEY-----
    ...
    -----END PRIVATE KEY-----
    

    纠正文件后,它只是:

    -----BEGIN PRIVATE KEY-----
    ...
    -----END PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    

    2023-02-07 15:27 回答
    1. 由于您使用的是Windows,请确保您的Windows中的证书"兼容",最重要的是它^M在每行的最后都没有

      如果你打开它,它将如下所示:

      -----BEGIN CERTIFICATE-----^M
      MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM^M
      

      解决"这个"用Write或Notepad ++ 打开它并将其转换为Windows"风格"

      尝试运行openssl x509 -text -inform DER -in server_cert.pem并查看输出是什么,私钥/密钥不可能不受信任,只有从密钥库导出密钥时才需要信任,是吗?

    2023-02-07 15:28 回答
  • 我的错误只是使用CSR文件而不是CERT文件。

    2023-02-07 15:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有