如何通过终端从macOS Keychain Access获取证书的SHA1哈希
macOS终端查询证书SHA1哈希值方法
完全可以通过终端命令实现该需求,无需依赖Keychain Access图形界面。相比security dump-keychain的冗余输出,更推荐以下两种更精准的实现方式:
方法1:针对已导出的本地证书文件
直接用openssl命令计算SHA1指纹即可,命令格式如下:
openssl x509 -in <证书文件路径> -sha1 -fingerprint -noout
- 参数说明:
-sha1:指定计算SHA1指纹-fingerprint:输出证书指纹结果-noout:不输出证书原始内容,仅保留指纹结果
- 示例:查询桌面路径下
dev.cer证书的SHA1值:
openssl x509 -in ~/Desktop/dev.cer -sha1 -fingerprint -noout
返回结果中SHA1 Fingerprint=后跟随的冒号分隔字符串,即为对应的SHA1哈希值。
方法2:直接从钥匙串检索无需导出证书
通过security命令直接从钥匙串拉取证书内容,传递给openssl计算,无需提前导出证书文件,命令格式如下:
security find-certificate -c "<证书名称>" -p | openssl x509 -sha1 -fingerprint -noout
- 参数说明:
-c:后接要查询的证书常用名称,比如Apple Development: xxx@xxx.com-p:指定输出PEM格式的证书内容
- 如果要查询的证书存放在系统钥匙串而非当前用户钥匙串,可指定钥匙串路径:
security find-certificate -c "<证书名称>" -p /Library/Keychains/System.keychain | openssl x509 -sha1 -fingerprint -noout
补充:用security dump-keychain查询的方法
如果要使用security dump-keychain实现,可通过grep过滤结果,命令如下:
security dump-keychain | grep -A 1 "SHA-1 hash"
该命令会输出所有钥匙串内证书的SHA1值,你需要自行匹配对应证书条目,精准度低于前两种方法。
内容的提问来源于stack exchange,提问作者Christopher Graf
相关产品推荐
相关产品推荐

