Gow*_*nan 6 openssl cryptography x509
是否可以通过openssl仅获取十六进制格式的公钥?我使用过命令:
openssl x509 -in a.pem -text -noout
Run Code Online (Sandbox Code Playgroud)
这只是打印证书,其中公钥以十六进制格式提供,但我无法解析它。例如这个命令:
openssl x509 -in a.pem -pubkey -noout
Run Code Online (Sandbox Code Playgroud)
按以下格式返回公钥:
-----BEGIN PUBLIC KEY-----
#######
####===
-----END PUBLIC KEY----
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?我期待以十六进制格式输出。
由于(经过讨论)它是一个已经采用 Base64(Armored ASCII)格式的自签名密钥,因此像tomeko.net这样的工具足以将其编码为十六进制。
\n\n原答案:
\n\n从这篇文章中,对于受信任的证书:
\n\n\n\n\n解析 X.509 证书中的公钥并将其表示为十六进制数字非常简单。
\n
openssl x509 -modulus -noout < pub.cer | sed s/Modulus=/0x/\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n只需将 pub.cer 替换为您要解析的证书文件即可
\n
这使用了模数选项。
\n\n结果应该是这样的:
\n\n0xB1E057678343....\nRun Code Online (Sandbox Code Playgroud)\n\n注意:上述内容适用于包含 ASCII (Base64) 防护数据的 X.509v3 文件,前缀为 \xe2\x80\x9c\xe2\x80\x94\xe2\x80\x93 BEGIN \xe2\x80\xa6\xe2\ x80\x9d 行(即实际的 PEM 文件)。
\n\n如果您收到以下错误,则意味着您正在尝试查看 DER 编码的证书:
\n\nunable to load certificate\nPEM routines:PEM_read_bio:no start line:pem_lib.c:\nExpecting: TRUSTED CERTIFICATE\nRun Code Online (Sandbox Code Playgroud)\n\n对于 der 文件,另请注意DER 格式的公钥(这是一种将 X.509 对象表示为字节序列的方式)不仅包含模数,还包含指数(通常很短)和算法标识符
\n\n首先将证书从 DER转换为 PEM :
\n\nopenssl x509 -inform der -in certificate.cer -out certificate.pem\nRun Code Online (Sandbox Code Playgroud)\n\n然后再试一次
\n| 归档时间: |
|
| 查看次数: |
17253 次 |
| 最近记录: |