我正在开发一个应用程序,我必须在其中显示我的 Mac 笔记本电脑上可用的所有数字证书。我应该使用钥匙串来访问这些证书吗?这些证书的物理位置在哪里???
我想将他们的名字列出到标准输出中。请回复我几个带有示例的链接(如果可能),我可以看一下以了解并将其用于我的应用程序。我研究了证书、密钥和信任服务参考 API,但它确实令人困惑。
谢谢
我正在开发一个应用程序,我必须在其中显示我的 Mac 笔记本电脑上可用的所有数字证书。我应该使用钥匙串来访问这些证书吗?这些证书的物理位置在哪里???
我想将他们的名字列出到标准输出中。请回复我几个带有示例的链接(如果可能),我可以看一下以了解并将其用于我的应用程序。我研究了证书、密钥和信任服务参考 API,但它确实令人困惑。
谢谢
如果您只需要显示证书,那么已经有一个应用程序 - Keychain Access.app
证书可以物理地位于非文件系统设备上,例如智能卡。
您很可能对用户证书而不是 CA 证书感兴趣?您应该查看钥匙串参考和最有可能的证书列表功能。
我写了一个 Ruby Gem 来完成与 Keychain Access App 的接口。它提供了有关如何使用命令行程序的示例,security
您可以使用该程序来编写钥匙串脚本。
这是描述 gem 的博文:Automating Mac OS X Keychain App。
您可以在此处浏览源代码:钥匙串管理器源代码。它将为您提供有关如何使用security
命令行应用程序的示例。
因此,要列出钥匙串,您只需执行以下操作:
security list-keychains
这将输出如下内容:
"/Users/jprichardson/Library/Keychains/login.keychain"
"/Users/jprichardson/Library/Keychains/Microsoft_Intermediate_Certificates"
"/Library/Keychains/System.keychain"
然后你可以做这样的事情:
security find-certificate "/Users/jprichardson/Library/Keychains/login.keychain" -c Apple
如需更多帮助,请运行:
security -?
security list-keychains -?
security find-certificate -?
也请阅读:Apple 的安全手册页
希望有帮助。