You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS上验证应用签名证书并获取其SHA-1指纹?

确认macOS代码签名证书的SHA-1指纹

首先明确:你看到的CandidateCDHash sha1=bd26fd2d0111be2464bad4500330252cd4779623不是代码签名证书的SHA-1指纹。

为什么CandidateCDHash不是证书指纹?

CandidateCDHash是代码签名中「代码目录(Code Directory)」的SHA-1哈希值,它用于验证代码本身的完整性,和签名证书的指纹完全无关。

获取代码签名证书SHA-1指纹的正确方法

方法1:提取证书文件后解析

  1. 从目标文件中提取签名证书链:
codesign -dvvv --extract-certificates /path/to/your/target/file

执行后会在当前目录生成cert0、cert1等证书文件(cert0通常是直接签名的叶证书)。

  1. 解析证书文件获取SHA-1指纹:
security find-certificate -p -a cert0 | openssl x509 -fingerprint -sha1 -noout

输出格式类似:SHA1 Fingerprint=XX:XX:XX:...,这就是证书的SHA-1指纹。

方法2:直接从codesign输出提取证书信息

执行以下命令查看签名的证书链详情,从中定位证书指纹:

codesign -dv --verbose=4 /path/to/your/target/file 2>&1

在输出中找到Authority开头的字段,对应证书链中的各个证书。可以结合security命令验证这些证书的指纹,比如针对某个证书名称:

security find-certificate -c "证书名称" -Z | grep SHA-1

补充:产品签名与代码签名的差异

产品签名(productsign)的安装包用pkgutil --check-signature能直接看到证书指纹,是因为pkg包结构中直接嵌入了完整的证书链及指纹信息;而代码签名的codesign命令默认输出更侧重代码完整性验证相关的哈希,而非证书本身的指纹。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:42:13