MacOS Jenkins:查找JRE并导入自签名证书

时间:2018-08-13 02:22:18

标签: java macos ssl jenkins self-signed

在这里使用macOS的新手。

我们在MacOS上安装了Jenkins。

我需要知道使用哪个JRE和cacerts,因为我需要导入GitHub企业服务器的自签名证书进行集成。我遇到SSL错误,并尝试遵循在Windows中成功完成的resolving PKIX-path-building-failed-error-message guide

在Windows Jenkins安装中,它具有自己的JENKINS_HOME / jre文件夹,可以在其中找到lib / security / cacerts。

问题1 :在哪里/如何找到Jenkins在MacOS中使用的jre?

到目前为止,我发现的是

中的java_home
/usr/libexec/java_home

但是我不确定,因为我下一步的结果失败了。

问题2 :如何将已修改的cacerts文件的信任库和密码添加到jenkins启动中?

使用/ usr / libexec / java_home中的jre,将/ jre / lib / security / cacerts复制到我的JENKINS_HOME / custom-keystore / cacerts中,并将自签名证书导入该目录。

sudo keytool -importcert -alias github -file JENKINS_HOME/custom-keystore/selfsigned.cer -keystore JENKINS_HOME/custom-keystore/cacerts

之后,我修改了Jenkins启动参数:

-Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacert
-Djavax.net.ssl.trustStorePassword=changeit

使用:

defaults write /Library/Preferences/org.jenkins-ci.plist Djavax.net.ssl.keyStore JENKINS_HOME/custom-keystore/cacerts
defaults write /Library/Preferences/org.jenkins-ci.plist Djavax.net.ssl.keyStorePassword changeit

然后使用以下命令重新启动Jenkins:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

此后,我遇到了各种问题:

  1. 代理问题-(在将服务器URL添加到代理列表中后解决-macOS网络配置)

  2. GitHub和其他先前成功的集成现在出现以下错误:

    javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接

其他问题 我的脚步有什么想念的吗?

在Jenkins启动中添加参数的方式是否正确? (在Windows中,我刚刚修改了jenkins.xml,还使用了带有“-”的参数,而这里似乎不需要“-”?)

由于我使用的是启动守护程序而不是启动代理,因此我是否必须重新启动系统? -或者默认的卸载和加载就足以应用更改?

1 个答案:

答案 0 :(得分:0)

现在已成功解决了问题。 我更正了1步,然后添加了另一步。

  1. 代替使用

sudo defaults write /Library/Preferences/org.jenkins-ci.plist Djavax.net.ssl.trustStore /Users/Shared/Jenkins/Home/custom-keystore/cacerts

sudo defaults write /Library/Preferences/org.jenkins-ci.plist Djavax.net.ssl.trustStorePassword changeit

我编辑了jenkins_runner.sh中的/Library/Application\ Support/Jenkins

javaArgs="-Dfile.encoding=UTF-8 -Djavax.net.ssl.trustStore=/Users/Shared/Jenkins/Home/custom-keystore/cacerts -Djavax.net.ssl.trustStorePassword=changeit"
  1. (重新启动)执行

    launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

    launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

我发现所做的更改未完全应用。因此,我必须重新启动我的Mac。

事实证明,我用于密钥工具和导入cacerts的/ usr / libexec / java_home中的Java / JRE是正确的。