我正在尝试编写一个脚本,列出钥匙串中所有已安装的证书,并将它们与Apple开发门户网站的证书的创建/过期日期进行比较。
我查看了security
(https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/security.1.html)和openssl
的文档,但我似乎无法将证书从一个证书传递给另一个证书。
另一种方法是直接使用Security.framework
,但我没有看到任何明显的方法来转储证书的创建/到期日期。
任何指导?
答案 0 :(得分:1)
在命令行,我认为您可以security find-certificate -a -p
然后拆分返回的PEM编码证书,逐个将它们提供给openssl x509 -inform PEM ....
。
在代码中,您可以使用SecItemCopyMatching
= kSecClass
和kSecClassCertificate
= kSecMatchLimit
kSecMatchLimitAll
枚举证书。您可以使用SecCertificateCopyValues()
获取证书的到期日期,但如果没有,您可以使用SecCertificateCopyData()
获取证书本身(作为DER编码的blob)并将其传递给openssl x509 -inform DER ....