用于启动 Tomcat 和 Jenkins 的非特权用户的 iOS 默认钥匙串
Posted
技术标签:
【中文标题】用于启动 Tomcat 和 Jenkins 的非特权用户的 iOS 默认钥匙串【英文标题】:iOS default keychain for unprivileged user used to start Tomcat and Jenkins 【发布时间】:2015-09-11 20:32:27 【问题描述】:我创建了一个非特权用户来将 Tomcat 8 作为服务启动。 Tomcat 运行 Jenkins,它用于提供作业,我的团队成员可以上传 .ipa 文件和配置文件并重新签署 .ipa 文件。每当 Jenkins 重新签署 .ipa 文件时,它都会运行一个 shell 脚本。该 shell 脚本最近更新,现在调用安全命令,这会导致以下错误:
安全性:证书导入失败:找不到默认钥匙串。
我需要为我的非特权 Tomcat 用户设置默认钥匙串。
我该怎么做?我在网上没有看到太多关于它的信息,而且我看到另一个关于该主题的 *** 帖子没有得到答复。
【问题讨论】:
以防万一,这是另一个 SO 帖子:***.com/questions/9693857/… 【参考方案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 脚本中运行该命令(就像我正在做的那样)。
【讨论】:
以上是关于用于启动 Tomcat 和 Jenkins 的非特权用户的 iOS 默认钥匙串的主要内容,如果未能解决你的问题,请参考以下文章
CentOS下安装Jenkins(Docker/war/tomcat/java -jar)