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

7
我正在尝试编写一个脚本,列出钥匙串中安装的所有证书,并将它们与苹果开发门户网站中的证书创建/过期日期进行比较。
我查看了securityhttps://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/security.1.html)和openssl的文档,但似乎无法将一个证书从一个传递到另一个。
另一种选择是直接使用Security.framework,但我没有找到任何明显的方法来转储证书的创建/过期日期。
有什么建议吗?

检查Keychain Dumper的源代码。通常可以在由渗透测试人员使用的iOS越狱工具周围找到它。 - jww
源代码似乎与“security find-certificate”执行相同的操作,其中它会转储您可以在命令行上看到的值。没有日期。 - ray
1个回答

7
在命令行中,您可以使用security find-certificate -a -p命令,并将返回的PEM编码证书拆分为一个个,然后逐个将其提供给openssl x509 -inform PEM ....
在代码中,您可以使用SecItemCopyMatching枚举证书,其中kSecClass=kSecClassCertificatekSecMatchLimit=kSecMatchLimitAll。您可以使用SecCertificateCopyValues()获取证书的过期日期,如果不能获取,则可以使用SecCertificateCopyData()获取证书本身(作为DER编码的blob),并将其导入至openssl x509 -inform DER ....

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接