如何设置Jenkins CI在Windows上使用HTTP?
-
24-10-2019 - |
题
我们最近在Windows上设置了Jenkins CI服务器。现在,为了使用Active Directory身份验证,我想需要HTTPS(SSL/TLS)进行访问。鉴于此设置,建议这样做的建议是什么?
解决方案
转到您的%jenkins_home%,然后修改jenkins.xml。你看到的地方 --httpPort=8080
将其更改为 --httpPort=-1 --httpsPort=8080
当然,您可以将端口做任何东西,但是在我的测试中(不久前,它可能已经改变),如果您不保留 --httpPort=<something>
那么詹金斯将始终使用8080。因此,如果您简单地更改 --httpPort=8080
至 --httpsPort=8080
, ,端口8080仍将使用HTTP。
另外,如果您想使用自己的证书,则此页面的底部有一些说明。
http://wiki.jenkins-ci.org/display/jenkins/starting+and+and+accessing+jenkins
其他提示
跑:
keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048
回答记忆的问题 First and last name
是网站URL,应该是小写。例子:
build.jenkins-ci.org
State or province
不能缩写。
跑:
keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048
发送 Jenkins.csr
给您的证书提供商,并要求PKCS#7证书 .p7b
扩展,以:
-----BEGIN PKCS #7 SIGNED DATA-----
注意:审判证书通常不可用 .p7b
格式,但您可能可以结合 .cer
使用此工具报告成功但对我不起作用的文件。 (https://www.sslshopper.com/ssl-converter.html)
跑:
keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]
更改 arguments
jenkins.xml中的节点为以下主题。
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=-1 --httpsPort=443 --httpsKeyStore="%BASE%\Cert\Jenkins.jks" --httpsKeyStorePassword=[Cert password from step 1]</arguments>
故障排除:
- 如果詹金斯没有开始阅读最后一行
Jenkins.err.log
. - 如果詹金斯因问题而没有开始
Jenkins.xml
, , 更换–
(怪异的Windows连字符)字符具有实际-
(ASCII连字符)。 - 如果詹金斯(Jenkins
[Name of website]
是实际的URL没有https:
例子:https://build.jenkins-ci.org
将会build.jenkins-ci.org
. - 如果不是问题,请检查
.jks
文件使用KeyStore Explorer
. 。 “证书层次结构”应表明每个证书都嵌套在另一个证书中;这是为了说明证书链。如果它显示彼此相邻的证书,那是不正确的。 - 如果它不在特定端口(例如443)上启动,则验证IIS或其他应用程序当前不使用该端口。
- 如果您可以在PC上看到该站点,但没有另一台PC,则可以验证您不会被防火墙阻止。
步骤1:在您的Jenkin名称上同时创建公共证书(如果不是这样,则将其转换为Keysore文件):将公共证书导入到您的浏览器证书Mananger(导入到所有选项卡)中)step3:使用包含两者都包含的JKS文件托管您的Jenkin公共和私钥。
有关步骤,请参考”在詹金斯启用https?"