OSX:以编程方式从钥匙串以PEM格式导出系统证书

Zes*_*est 5 macos keychain pem

如何以编程方式以pem格式从OSX上的所有钥匙串中提取所有根CA证书?

钥匙串编程服务应该允许这样做,但是怎么做呢?

任何帮助将是可观的。

Haf*_*hor 9

security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >certs-roots.pem
security find-certificate -a -p /Library/Keychains/System.keychain >certs-system.pem
security find-certificate -a -p ~/Library/Keychains/login.keychain-db >certs-user.pem
Run Code Online (Sandbox Code Playgroud)

顺便说一句:当您将鼠标悬停在钥匙串列表(顶部/左侧)上时,您可以在钥匙串访问中看到这些路径。

您可以使用默认证书源组合系统和用户 pem

security find-certificate -a -p >certs.pem
Run Code Online (Sandbox Code Playgroud)

这对于 node.js 非常有用,当您想在典型的公司内部内容上使用 require('https').request 而不必求助于诸如不检查就接受任何证书之类的技巧时。您不需要包含系统根,因为 nodejs 已经涵盖了这些。

NODE_EXTRA_CA_CERTS=certs.pem node
Run Code Online (Sandbox Code Playgroud)


Zes*_*est 4

回答我自己的问题:在 OSX 上,您可以调用 NSTask 从安全命令行实用程序获取响应:

security find-certificate -a -p /System/Library/Keychains/SystemCACertificates.keychain > allcerts.pem
Run Code Online (Sandbox Code Playgroud)