我有一个 Jenkins 2.371 实例。为了安全起见,我请求了 SSL 证书并实施了它。Jenkins UI 现在运行良好https://servername.domain.com/
问题出在代理身上。我已经jks
使用 keytool 将我的证书链导入 jdk,所以证书根本没有问题。当我启动代理时,我收到一个错误:
严重:https ://servername.domain.com/tcpSlaveAgentListener/似乎正在发布无效的 X-Instance-Identity。java.io.IOException:https ://servername.domain.com/tcpSlaveAgentListener/似乎正在发布无效的 X-Instance-Identity。在 org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:284) 在 hudson.remoting.Engine.innerRun(Engine.java:744) 在 hudson.remoting.Engine.run(Engine.java:543)
因此,似乎服务器公布的 url 不是代理所期望的。
出于参考目的(但不相关),用于将 jks 添加到 cacerts 存储的 keytool 命令:
keytool -import -alias /tmp/jenkins.jks -cacerts -keypass 'Password' -file servername_domain_com.cer -storepass 'changeit'
至于代理启动。我已经agent.jar
再次下载了,因为移动到https
通常:
java -jar agent.jar -jnlpUrl https://servername.domain.com/computer/agenthostname/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins"
代理启动包括jnlp
. 我这样说是因为,我发现的唯一一篇关于类似错误的文章指出jnlp
应该排除该路径,但遗憾的是,这没有什么意义,但我确实尝试过,但是代理现在只是重试连接,因为它没有得到预期的响应。
我没有任何反向代理设置,所以这也不是问题。
PS!!我确实提取了war
文件并查看了java
显示此错误的文件,不幸的是,找到一些有用的帮助是相当乏味的。