枚举Mac Keychain中的所有证书,并比较创建/到期日期

时间:2016-11-13 22:54:22

标签: macos keychain code-signing-certificate

我正在尝试编写一个脚本,列出钥匙串中所有已安装的证书,并将它们与Apple开发门户网站的证书的创建/过期日期进行比较。

我查看了securityhttps://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/security.1.html)和openssl的文档,但我似乎无法将证书从一个证书传递给另一个证书。

另一种方法是直接使用Security.framework,但我没有看到任何明显的方法来转储证书的创建/到期日期。

任何指导?

1 个答案:

答案 0 :(得分:1)

在命令行,我认为您可以security find-certificate -a -p然后拆分返回的PEM编码证书,逐个将它们提供给openssl x509 -inform PEM ....

在代码中,您可以使用SecItemCopyMatching = kSecClasskSecClassCertificate = kSecMatchLimit kSecMatchLimitAll枚举证书。您可以使用SecCertificateCopyValues()获取证书的到期日期,但如果没有,您可以使用SecCertificateCopyData()获取证书本身(作为DER编码的blob)并将其传递给openssl x509 -inform DER ....