文件哈希与证书指纹
证书与私钥在网络分发、外部交付或跨环境搬迁后,需要用哈希核对文件完整性,识别传输损坏或被人替换的情况。这里有两个容易混淆的对象:文件哈希作用于整个文件(包括换行与 PEM 头尾),证书指纹作用于 DER 编码后的证书内容,同一张证书的这两种值必然不同。核对时统一 SHA-256,并与交付方公布的摘要比对;但要记住,哈希只能证明一致性,来源是否可信仍需靠渠道本身验证。
基本信息
| 文件哈希 | sha256sum、certutil -hashfile、Get-FileHash,作用于整个文件 |
|---|---|
| 证书指纹 | openssl x509 -fingerprint -sha256,作用于 DER 编码内容 |
| 算法选择 | 统一使用 SHA-256,MD5/SHA-1 已不适用 |
| 私钥校验 | 私钥不能直接取指纹,可用 -pubout 后的摘要比对公钥一致性 |
| 能力边界 | 只证明文件一致,不能证明来源可信 |
| 归档价值 | 把哈希写入签发与发布记录,回滚时可复原当时材料 |
典型使用场景
- 外部交付验收:CA 或合作方发来证书文件时核对摘要。
- 跨环境搬运:从测试环境复制到生产后确认文件未被损坏。
- 事故取证:确认线上实际部署的证书与发布记录是否一致。
- 回滚准备:归档时保存哈希,回滚时可精确复原。
- 合规留痕:提供文件一致性的可核查证据。
多平台计算哈希
多平台计算哈希
sha256sum cert.pem key.pem # Linux
certutil -hashfile cert.pem SHA256 # Windows CMD
get-filehash -Algorithm SHA256 cert.pem # PowerShell
# 证书指纹(作用于 DER 编码内容,与文件哈希不同)
openssl x509 -in cert.pem -noout -fingerprint -sha256
# 校验证书与私钥是否配对:比较公钥摘要
# openssl x509 -in cert.pem -noout -pubkey | openssl sha256
# openssl pkey -in key.pem -pubout | openssl sha256核对对象与口径
| 对象 | 命令口径 | 注意事项 |
|---|---|---|
| 证书文件 | sha256sum cert.pem | 包含换行与头尾标记,重编码会改变结果 |
| 私钥文件 | sha256sum key.pem | 务必在受控环境计算并清理历史记录 |
| 证书指纹 | openssl x509 -fingerprint | 与文件哈希不可互相验证 |
| 公钥一致性 | pubkey 摘要比对 | 确认私钥与证书匹配 |
| CA 公布的摘要 | 以官方渠道发布值为准 | 第三方页面上的摘要不可作依据 |
把文件哈希与签发记录一起归档,回滚时可以精确复原当时的部署材料,也能在事后证明线上证书就是计划发布的那一张。