如何解析Mac系统security命令输出的证书信息?
Mac钥匙串证书Subject段解析指南
一、数据格式说明
"subj"<blob>=后面的十六进制序列是ASN.1 DER编码的X.500主题名称,这是X.509证书标准里用来标识证书持有者的规范编码格式——DER是ASN.1的一种紧凑二进制编码规则,确保数据无歧义。
你看到的后半段0\201\2241\032...是终端对二进制数据的八进制转义显示:每个\后跟的三位数字对应字节的八进制值,比如\201就是十进制129、十六进制0x81,和前面的十六进制序列完全对应。这种转义只是为了让不可打印字符能在终端显示,并不是实际的字符串内容。
二、直接解析的便捷命令
不用手动折腾解码,security命令配合openssl就能直接输出可读结果:
方法1:直接输出可读Subject
用-p参数导出证书的PEM格式,再通过openssl解析出Subject:
security find-certificate -p -c "Apple Development" login.keychain | openssl x509 -noout -subject
输出示例:
subject= /C=US/ST=California/L=Cupertino/O=Apple Inc./OU=Developer Relations/CN=Apple Development: XXX@example.com
方法2:查看完整ASN.1结构
如果需要更细致的字段层级,用openssl解析ASN.1结构:
security find-certificate -p -c "Apple Development" login.keychain | openssl asn1parse -inform pem
会输出每个字段的类型、长度和对应值的详细信息。
三、手动解码步骤(进阶)
如果非要手动处理之前提取的十六进制数据:
- 把
0x开头的十六进制字符串去掉前缀,保存为纯文本文件(比如subj.hex) - 用
xxd把十六进制转成二进制DER文件:xxd -r -p subj.hex > subj.der - 用openssl解析DER文件:
openssl asn1parse -inform der -in subj.der
内容的提问来源于stack exchange,提问作者fuji
相关产品推荐
相关产品推荐

