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

如何获取login钥匙串中codesigning证书的过期日期

提取login钥匙串代码签名证书有效期方案

直接可用批量查询脚本

直接在终端执行以下命令即可输出所有codesigning证书的名称、SHA1和过期时间:

security find-identity -p codesigning login.keychain | grep "^\s*[0-9]*\)" | awk '{print $2}' | while read -r sha1; do
    cert_info=$(security find-certificate -Z -c "$sha1" -p login.keychain | openssl x509 -noout -dates -subject)
    cert_name=$(echo "$cert_info" | grep 'subject=' | sed 's/.*CN=\([^/]*\).*/\1/')
    expire_date=$(echo "$cert_info" | grep 'notAfter=' | sed 's/notAfter=//')
    echo "证书名称: $cert_name | 过期时间: $expire_date | SHA1: $sha1"
done

命令逻辑说明

  • 第一部分先从security find-identity的输出中过滤有效签名条目,提取每个条目的唯一SHA1哈希值作为查询索引
  • 循环过程中调用security find-certificate读取对应证书的PEM内容,交给openssl解析证书字段
  • 从解析结果中提取证书公用名(CN字段)和过期时间(notAfter字段)输出

单证书查询方法

如果仅需要查询单个证书的有效期,执行以下命令替换对应参数即可:
security find-certificate -c "<证书名称或SHA1>" -p | openssl x509 -noout -enddate

注意事项

如需查询系统钥匙串内的证书,将命令中login.keychain替换为/Library/Keychains/System.keychain即可;如果执行过程中弹出权限验证,输入当前用户密码即可完成读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:15:09