我创建了一个非特权用户来启动 Tomcat 8 作为服务。Tomcat 运行 Jenkins,它用于提供作业,我的团队成员可以上传 .ipa 文件和配置文件,然后重新签名 .ipa 文件。Jenkins 每次重新签名 .ipa 文件时都会运行一个 shell 脚本。该 shell 脚本最近已更新,现在调用安全命令,导致以下错误:
安全:证书导入失败:找不到默认钥匙串。
我需要为我的非特权 Tomcat 用户设置默认钥匙串。
如何向非特权用户添加默认钥匙串或让该用户使用该钥匙串?
我不确定是否需要运行命令或在我的 tomcat.plist 中指定钥匙串。
答案1
我找到了一个解决方法。我能够使用以下方法动态创建新的钥匙串,将证书添加到钥匙串,然后删除钥匙串:
security create-keychain -p temp "temp.keychain"
security add-certificates -k "temp.keychain" "ios_distribution.cer"
security unlock-keychain -p temp "temp.keychain"
security cms -D -k "temp.keychain" -i "blah.mobileprovision" > <entitlements>
...do some stuff...
security delete-keychain -h "temp.keychain"
如果您确实想为非特权用户设置钥匙串,您可以使用以下命令:
default-keychain [-h] [-d user|system|common|dynamic] [-s [keychain]]
前任。
default-keychain -h "temp.keychain"
您可以从非特权用户正在执行的 shell 脚本运行该命令(就像我正在做的那样)。