UTF8 和 T61 字符串,我如何查看我的 SSL 证书使用了什么?

UTF8 和 T61 字符串,我如何查看我的 SSL 证书使用了什么?

如何使用 openssl x509 工具查看证书中的字符串是否为 T61 或 UTF8 编码?还有更好的方法吗?

答案1

OpenSSL X509:如果你指的是主题和/或发行者字段,最简单、最易读的方式(在我看来)是

openssl x509 -in certpemfile -noout -text -nameopt multiline,show_type 

或者如果你想仅有的名称字段更改-text-subject和/或-issuer。还有其他格式,如果你想要非平凡编码数据为了方便显示,你可能需要额外的选项;请参阅系统的手册页或在网上在“名称选项”大约一半的位置。如果您的输入是 OpenSSL 所称的“DER”(二进制)而不是更常见的“PEM”(文本),请添加-inform der

如果您指的是可以包含(可分辨)名称字段的扩展 - 我算上 SAN/IAN、NameConstraints、CRLDP、AIA/SIA,尽管我看不出 DN 在后三个中有什么用处,而且肯定还有更多 - 据我所知,不支持。但请看下文。

其他: openssl asn1parse转储确切的类型、长度和大多任何 ASN.1 BER/DER 结构的值,包括证书。对于 X.509 格式的扩展(包装在 OCTET STRING 中),您可以使用它-strparse offset来对嵌套结构进行 ASN.1 解码。识别和选择所需字段是您的工作,通常可能很困难,但由于 DN 和扩展都用前面的 OID(OpenSSL 称之为 OBJECT)标记其每个元素并asn1parse解码 openssl 已知的所有 OID(您可以为其提供其他 OID),因此您通常只需直观地扫描countryNamecommonName即可。有关 PEM 的说明:许多openssl函数会创建或接受并忽略 PEM 格式数据的“注释”,但asn1parse不会。它会处理 dash-BEGIN 和 dash-END 行,但几乎所有其他内容都会被视为数据的一部分,从而导致错误结果。验证您的输入文件(或管道或其他)是否包含仅有的证书

相关内容