You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过命令行获取mycert.pem证书链的SHA256哈希值?

获取证书链SHA256哈希值的命令行方法

嘿,这个需求用OpenSSL就能轻松解决,这是命令行处理证书的标配工具了。我分两种常见场景给你说明:

场景1:获取整个证书链文件的SHA256哈希值

如果你需要的是整个证书链文件本身的SHA256哈希(比如用来验证文件完整性),直接用系统自带的哈希工具就行:

sha256sum mycert.pem

执行后会输出一串SHA256哈希值和文件名,这就是整个证书链文件的哈希结果。

场景2:获取证书链中每个证书的SHA256指纹

如果你需要的是链中每一张单独证书的SHA256指纹(这也是很多人说的“证书链哈希”的常见需求),可以用OpenSSL来遍历提取:

方法一:快速查看所有指纹

openssl crl2pkcs7 -nocrl -certfile mycert.pem | openssl pkcs7 -print_certs -text | grep -A2 "SHA256 Fingerprint"

这个命令会把证书链里的所有证书指纹一次性列出来,格式清晰。

方法二:逐个提取并查看(更灵活)

如果想更清晰地看到每个证书对应的指纹,可以先把链中的证书拆分出来,再逐个计算:

# 把PEM文件中的每个证书拆分到单独的临时文件
awk 'BEGIN {c=0;} /BEGIN CERTIFICATE/ {c++} {print > "cert" c ".pem"}' mycert.pem

# 遍历临时证书文件,计算每个的SHA256指纹
for cert in cert*.pem; do
    echo "=== 证书 $cert 的SHA256指纹 ==="
    openssl x509 -in "$cert" -noout -fingerprint -sha256
    rm "$cert" # 清理临时文件
done

注意事项

  • 大部分Linux发行版、macOS都默认预装了OpenSSL和sha256sum;Windows用户可以安装Git Bash或者官方的OpenSSL二进制包来使用这些命令。
  • 如果你的mycert.pem只有单个证书,那上面的命令也同样适用,只是只会输出一个哈希/指纹。

内容的提问来源于stack exchange,提问作者Leem

火山引擎 最新活动