我们最近在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?"

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top