为什么不同版本的 openssl 会为同一个根证书生成不同的散列文件名?

为什么不同版本的 openssl 会为同一个根证书生成不同的散列文件名?

OpenSSL - Solaris - Windows

当我运行 c_rehash(Solaris 中的 OpenSSL 0.9.x)和 c_rehash(Windows 中的 OpenSSL 1.1.x)时,完全相同的 cert.pem 文件会转换为具有完全不同文件名的 .0 文件。

(Windows)cert.pem => 4e12356.0

(Solaris)cert.pem => 3e121e8.0

这是为什么?无论我使用哪个版本的 OpenSSL,哈希值难道不应该完全相同吗?

答案1

在迁移到 OpenSSL 1.0 时,这些名称使用的哈希发生了变化。您可以使用 恢复到旧行为-subject_hash_old。请参阅文档

-哈希

出于向后兼容的原因,它是“-subject_hash”的同义词。

-subject_hash_old

使用 1.0.0 之前的 OpenSSL 版本所使用的旧算法输出证书主题名称的“哈希”。

更多背景信息请参见这条信息. 本质上,哈希算法从 MD5 变成了 SHA-1。

相关内容