微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从Mac获取钥匙串证书信息

如何解决无法从Mac获取钥匙串证书信息

对于从Xcode创建的命令行应用程序,我面临一个奇怪的问题。我正在运行一个脚本,以使用以下命令获取Mac的“钥匙串”访问中可用的证书之一的失效日期

security find-certificate -c "CertificateNameHere" -p | openssl x509 -text | grep "Not After"

当我通过Xcode在本地运行它时,我可以获取日期。但是,当我从“库”文件夹之一作为服务运行该应用程序时,未获取到期日期。相反,我遇到了错误

PEM routines:CRYPTO_internal:no start line:/AppleInternal/buildroot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.140.1/libressl-2.8/crypto/pem/pem_lib.c:684:Expecting: TRUSTED CERTIFICATE

尽管证书是受信任的

我尝试了很多解决方案,例如试图找到一个合适的解决方案以获取钥匙串中可用证书的有效期限,但是没有运气。所以我将其发布在stackoverflow中。我尝试了另一种解决方案,使用Mac Xcode安全框架通过swift获取日期,但问题仍然存在。

解决方法

造成麻烦的可能原因是访问权限。

当脚本作为服务运行时,它具有另一个用户和不同/没有环境的上下文(例如crontab服务)。

您可以通过向服务提供适当的登录用户来解决此问题,并使用正确的source命令将服务初始化为相应的.profile.bash_profile脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。