【问题标题】:Unable to Fetch Keychain Certificate Information from mac无法从 mac 获取钥匙串证书信息
【发布时间】:2021-02-24 08:29:43
【问题描述】:

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

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

当我通过 Xcode 在本地运行它时,我能够获取日期。但是,当我从 Library 文件夹之一将应用程序作为服务运行时,不会获取到期日期。相反,我得到了一个错误

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 获取日期的解决方案,但问题仍然存在。

【问题讨论】:

    标签: macos shell terminal command-line-interface keychain


    【解决方案1】:

    您遇到问题的可能原因是访问权限。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多