读取base64编码证书的内容

use*_*813 4 ssl base64 openssl certificate

我在读取 Base64 编码的 SSL 证书时遇到一些问题。我拥有的是一个base64编码的字符串,没有“----BEGIN CERTIFICATE----”和“----END CERTIFICATE----”。我尝试用多种方式阅读它,但对我来说失败了

我尝试通过cmd读取证书

openssl x509 -in cdg_cert -text -noout 
Run Code Online (Sandbox Code Playgroud)

并得到:PEM routines:CRYPTO_internal:no start Expecting: TRUSTED CERTIFICATE error

我还尝试解码该字符串并将其保存在我的磁盘上,最终得到一个二进制文件,但仍然无法通过 openssl cmd 读取它,最终出现相同的错误

谷歌搜索并没有找到任何好的提示,任何人都可以帮助我了解我应该使用的cmd吗?我正在运行 MacBook 并尝试读取证书内容

Mic*_*nym 5

我遇到过同样的问题

unable to load certificate
459600:error:0909006C:PEM routines:get_name:no start line:../openssl-1.1.1a/crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)

,经过一番努力后,只是尝试使用文本编辑器并将页眉/页脚包裹在 base64 编码部分周围:

-----BEGIN CERTIFICATE-----
...(cert content goes here)...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

之后,我能够使用以下方式读取证书:

"c:\Program Files\Git\mingw64\bin\openssl" x509 -text -noout  -in IdP_Signing_Certificate.crt
Run Code Online (Sandbox Code Playgroud)

正如评论中已经提到的,您应该知道需要放置哪个标头,因为它是 PEM 定义的一部分。标头中的字符串在此处定义,并取决于证书中提供的内容,这是添加到 PEM 的未知部分:

https://github.com/openssl/openssl/blob/master/include/openssl/pem.h

简而言之:PEM 只是 base64 DER 输出 + header/footer