当前位置: 首页 > 知识库问答 >
问题:

在jenkins中启用HTTPS?

萧星火
2023-03-14

我有一个带有本地IP的专用网络。我想为我的Jenkins服务器启用HTTPS,它是静态IP W.X.Y.Z:8080。

Jenkins version 2.9
java version "1.7.0_111"
OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-0ubuntu0.14.04.3)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

我尝试在 /etc/defaults/jenkins文件中配置以下参数

HTTP_PORT=-1
JENKINS_ARGS="--webroot=/var/cache/$NAME/war -DsessionTimeout=1 --httpPort=$HTTP_PORT  --httpsPort=8081"

但是我得到了以下错误。请帮忙

Running from: /usr/share/jenkins/jenkins.war
webroot: $user.home/.jenkins
Oct 19, 2016 2:18:48 PM org.eclipse.jetty.util.log.JavaUtilLog info
INFO: Logging initialized @811ms
Oct 19, 2016 2:18:48 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Oct 19, 2016 2:18:48 PM org.eclipse.jetty.util.log.JavaUtilLog warn
WARNING: Empty contextPath
Using one-time self-signed certificate
Oct 19, 2016 2:18:48 PM winstone.Logger logInternal
INFO: Winstone shutdown successfully
Oct 19, 2016 2:18:48 PM winstone.Logger logInternal
SEVERE: Container startup failed
java.io.IOException: Failed to start a listener
winstone.HttpsConnectorFactory
at winstone.Launcher.spawnListener(Launcher.java:207)
at winstone.Launcher.<init>(Launcher.java:149)
at winstone.Launcher.main(Launcher.java:352)`enter code here`
at sun.reflect.NativeMethodAccessorImpl.invoke0        

我发现类似的问题解决在这里但它不工作对我来说

编辑1:以下更改已尝试在 /etc/defaults/jenkins文件和重新启动jenkins,但它不适用于我。

HTTP_PORT=-1
JENKINS_ARGS="--webroot=/var/cache/$NAME/war -DsessionTimeout=1 --httpPort=$HTTP_PORT   --httpsPort=8443 --httpsCertificate=cert.pem --httpsPrivateKey=key.pem

https://issues.jenkins-ci.org/browse/JENKINS-34463

https://issues.jenkins-ci.org/browse/JENKINS-25333

共有3个答案

倪灿
2023-03-14

您需要为私钥的keystore或. pem文件传递参数

https://wiki.jenkins-ci.org/display/JENKINS/Starting和詹金斯

慕阳伯
2023-03-14

如果您有一个有效的证书,并且您不想为Jenkins启用HTTPS,但仍然想要SSL启用流量,那么这里有另一种方法。

在我的例子中,我将Jenkins放在我的Nginx web服务器后面。以下是我遵循的步骤:

>

  • 我已经安装了Nginx服务器。(sudo-apt-install nginx
  • 复制该计算机中的证书文件。(文件为:

    ssl_certificate /etc/nginx/<my-cert>.crt;
    ssl_certificate_key /etc/nginx/<my-cert>.key;
    

    按照Jenkins Wiki中提到的步骤操作。

    通过执行这些步骤,请求流将如下所示:

    1. 请求转到Nginx web服务器
    2. 反向代理将流量重定向到运行Jenkins的本地主机:8080(或自定义IP:port
    3. Jenkins将处理请求并向Nginx作出答复
    4. Nginx将返回响应

    您可以对Apache、HAProxy和squid执行相同的操作,请参见

    • 使用本地SSL/HTTPS运行Jenkins
    • 在Nginx后面运行Jenkins
    • Jenkins在NGinX反向代理后面)

  • 邢小云
    2023-03-14

    您可以通过以下步骤通过HTTPS启用Jenkins:

    >

  • 使用Java创建证书

     keytool -genkey -keyalg RSA -alias "localhost" -keystore "C:\Users\username\Desktop\New folder\localhost.jks" -validity 365 -keysize 2048 -dname "CN=localhost, OU=OU_name, O=OU_name, L=city, ST=State_name, C=two_letter_country_code" -ext SAN=dns:localhost,ip:ip_address -storepass changeit
    

    从密钥存储文件导出p12公共证书

     keytool -importkeystore -srckeystore "C:\Users\username\Desktop\New folder\localhost.jks" -storepass changeit -destkeystore "C:\Users\username\Desktop\New folder\localhost.p12" -srcstoretype JKS -deststoretype PKCS12 -deststorepass changeit
    

    使用密钥存储(JKS)文件托管Jenkins

     java -jar jenkins.war --httpsPort=8082 --httpPort=-1 --httpsKeyStore="C:\Users\username\Desktop\New folder\localhost.jks" --httpsKeyStorePassword=changeit
    

    将证书导入浏览器

    您可能会问我们为什么要导出*。p12证书。。。好的,我们将把这个证书导入我们的浏览器,从那里我们可以访问Jenkins。同一p12证书可以在多个用户之间共享。

    例如在Chrome转到设置

  •  类似资料:
    • 问题内容: 升级后去运行jenkins,并获得以下信息: 就是这样…詹金的日志中什么也没有显示…所以很难说很难调试。(它还没有运行,或者类似的东西)。 我应该在其他地方查看另一个日志会有所帮助吗?(我假设对这个问题的回答将是反复的,所以希望有人可以在调试它的道路上开始我的工作) 问题答案: 因此,知道这是一个启动前错误,使我可以进行更深入的研究。 进一步的挖掘使我发现文件中的确切行是指向 看着这个

    • 问题内容: 我想在Centos7的Docker容器中运行Jenkins。我看到了Jenkins的官方文档:首先,从Docker存储库中提取官方的jenkins映像。 接下来,使用该映像运行一个容器,并将数据目录从该容器映射到主机;例如,在下面的示例中,容器中的/ var / jenkins_home从主机上的当前路径映射到jenkins /目录。Jenkins 8080端口也以49001的身份向主

    • 问题内容: [症状] 使用官方步骤安装Jenkins,但失败,并显示错误消息 无法启动LSB:在启动时启动Jenkins 。 重现步骤 控制台日志 [环境] Ubuntu 18.04 LTS Beta2 Jenkins2.107.2 问题答案: [根本原因] Ubuntu 18.04 LTS使用Java 9作为默认Java Jenkins 2.107.2仍使用Java 8 [解] 在安装Jenki

    • 这是我第一次使用詹金斯。管理詹金斯 当我进入新项目页面时,我仍然没有看到Maven。我想我需要重新启动詹金斯。 我尝试了,,以及。我收到错误“Jenkins无法按当前配置重新启动自身。” 我仍然看到命令提示符正在运行。 此外,我光盘到詹金斯文件夹,并试图从那里重新启动,但没有工作。 如何在windows计算机上重新启动Jenkins? 更新1 在开始安装和启动jenkins时,我采取了以下步骤。

    • 问题内容: 我们将擦除Mac Mini并从头开始重新安装新的XCode和Jenkins。我们最近才开始使用Slack,我们希望使用它来接收Jenkins构建通知并启动Jenkins构建。 因此,Slack通知没有问题。一切正常。 当我尝试使用Slack开始构建时,出现了我的问题。 本教程(http://sonnguyen.ws/how-to-trigger-a-jenkins-build-from

    • 问题内容: 我们有一个有效的Apache mod_ssl配置。我想为Undertow启用HTTPS支持,以便它侦听http和https,从而消除了对Apache的需求。 我研究了Undertow的javadocs。Undertow.Builder类具有两个具有以下签名的addHttpsListener方法: 所以看来我可以在使用Builder API引导Undertow时使用它们,例如 我不确定如