MacOS Jenkins:查找JRE并导入自签名证书
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS Jenkins:查找JRE并导入自签名证书相关的知识,希望对你有一定的参考价值。
新手在这里使用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:在MacOS中哪里/如何找到Jenkins使用的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
在此之后,我面临各种问题:
- 代理问题 - (在proxylist中添加服务器URL后解决 - macOS网络配置)
- GitHub和其他以前成功的集成现在出现以下错误: javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接
其他问题我的步骤中是否有任何遗漏?
我在Jenkins启动中添加参数的方式是否正确? (在Windows中,我刚刚修改了jenkins.xml,也使用了带“ - ”的参数,而这里似乎不需要“ - ”?)
由于我使用的是Launch Daemon而不是Launch Agent,我是否必须重启系统? - 默认情况下卸载和加载应该足以应用更改?
现在成功解决了这些问题。我纠正了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"
- (重启)执行后
launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
我发现我所做的更改并不完全适用。所以我不得不重启我的mac。
事实证明,我用于keytool和导入cacerts的/ usr / libexec / java_home中的Java / JRE是正确的。
以上是关于MacOS Jenkins:查找JRE并导入自签名证书的主要内容,如果未能解决你的问题,请参考以下文章
MacOS 上的 Chrome 停止信任自签名 CA 颁发的证书
sh 在MacOS上使用SubjectAltName为localhost创建自签名证书
ini MacOS Sierra和Chrome上的自签名SSL证书
Jenkins 无法使用带有自签名证书的 HTTPS (HTTP + SSL) 连接到 SonarQube 服务器
sh 笔记:OpenSSL生成「自签名」证书,配置Nodejs本地HTTPS服务 - 7.通过macOS下的keychian.app打开ssl.crt