用于启动 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)

jenkins自动发布后启动tomcat失败

Hi,Jenkins!

部署jenkins,采用普通用户tomcat来启动tomcat服务

jenkins启动重启关闭和重新加载配置

jenkins启动重启关闭和重新加载配置