如何计算OpenSSL新版X509证书主题的8字符哈希值
OpenSSL新版X509证书主题哈希计算逻辑
旧版(OpenSSL 1.0.2及更早)计算逻辑
- 对证书主题名称的对应数据计算MD5哈希值
- 截取哈希值的前4个字节(对应8位十六进制字符)
- 反转该4字节的顺序,得到最终主题哈希
示例(用户提供):
MD5哈希值:
b373df0b7e7d063966ae886f3a88dbc5
截取前4字节:b373df0b
反转后:0bdf73b3
新版(OpenSSL 1.1.0及之后)计算逻辑
- 第一步:将证书的X.501主题名称(
X509_NAME结构)序列化为ASN.1 DER编码的二进制数据(注意:必须是标准DER格式,而非明文主题字符串或其他编码) - 第二步:对该DER编码数据计算SHA-1哈希值
- 第三步:提取SHA-1哈希值的前4个字节(对应十六进制的前8位)
- 第四步:反转这4个字节的顺序,得到最终主题哈希
关键注意事项
- 若直接对主题明文(如
CN=example.com,OU=Dev)计算SHA-1,无法得到正确结果,必须使用主题名称的ASN.1 DER编码二进制数据 - 可通过OpenSSL命令行验证:
- 计算新版哈希:
openssl x509 -in cert.pem -hash -sha1 - 计算旧版哈希:
openssl x509 -in cert.pem -hash -md5
- 计算新版哈希:
内容的提问来源于stack exchange,提问作者jdany
相关产品推荐
相关产品推荐

