macos - 无法从 mac 获取钥匙串证书信息
问题描述
对于从 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 获取日期的解决方案,但问题仍然存在。
解决方案
您遇到麻烦的可能原因是访问权限。
当脚本作为服务运行时,它有另一个用户和不同/无环境上下文(如crontab
服务)。
您可以通过为服务提供正确的登录用户来解决此问题,并使用source
相应的命令.profile
或.bash_profile
脚本初始化服务。
推荐阅读
- python - pandas 从一个数据帧中检索值并在另一个数据帧上进行计算
- python - 将新值分配给 numpy 数组的问题
- swift - swift:mailcomposeviewcontroller 不会关闭
- html - 如何使内联 HTML 样式覆盖 CSS 样式?
- javascript - 如何为以下场景配置 elasticserach 7.3 自动补全
- php - 将 Auth 用户数据传递给队列作业类
- cypress - 在第一次赛普拉斯运行期间出现错误在 Windows 上生成 EPERM
- python - Python:我可以在登录文件之前修改日志内容吗?
- r - 使用特定字符串在数据集中保持观察 - R
- android - Android 发布版本 - MissingDefaultResource “错误”