【问题标题】:Jenkins start-up fails after pointing to ssl cert and key指向 ssl 证书和密钥后,Jenkins 启动失败
【发布时间】:2017-11-27 18:42:18
【问题描述】:
  • 詹金斯 2.73.3
  • Java(TM) SE 运行时环境(内部版本 1.8.0_151-b12) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.151-b12,混合模式)
  • Red Hat Enterprise Linux Server 7.4 版 (Maipo)

SSL 证书和密钥:

[root@l5109p ssl]# ls -lrt /etc/security/ssl/
-rw-r-----. 1 jenkins jenkins  2894 Nov 27 09:17 jenkins_wildcard.sss.se.com.cert.pem
-rw-r-----. 1 jenkins jenkins  1766 Nov 27 09:18 jenkins_wildcard.sss.se.com.key.pem

在 /etc/sysconfig/jenkins 中,我添加了以下条目:

JENKINS_ARGS="--httpsPort=8443 --httpsCertificate=/etc/security/ssl/jenkins_wildcard.sss.se.com.cert.pem --httpsPrivateKey=/etc/security/ssl/jenkins_wildcard.sss.se.com.key.pem"

在启动 jenkins 服务时,它失败并出现以下错误:

Running from: /usr/lib/jenkins/jenkins.war
Nov 27, 2017 9:42:17 AM Main deleteWinstoneTempContents
WARNING: Failed to delete the temporary Winstone file /tmp/winstone/jenkins.war
Nov 27, 2017 9:42:17 AM org.eclipse.jetty.util.log.Log initialized
INFO: Logging initialized @393ms to org.eclipse.jetty.util.log.JavaUtilLog
Nov 27, 2017 9:42:17 AM winstone.Logger logInternal
INFO: Beginning extraction from war file
Nov 27, 2017 9:42:17 AM org.eclipse.jetty.server.handler.ContextHandler setContextPath
WARNING: Empty contextPath
Nov 27, 2017 9:42:17 AM winstone.Logger logInternal
INFO: Winstone shutdown successfully
java.io.IOException: Failed to start a listener: winstone.HttpsConnectorFactory
        at winstone.Launcher.spawnListener(Launcher.java:209)
        at winstone.Launcher.<init>(Launcher.java:150)
        at winstone.Launcher.main(Launcher.java:354)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Main._main(Main.java:294)
        at Main.main(Main.java:132)
Caused by: java.lang.IllegalArgumentException: Not B64 encoded
        at org.eclipse.jetty.util.B64Code.decode(B64Code.java:428)
        at org.eclipse.jetty.util.B64Code.decode(B64Code.java:391)
        at winstone.AbstractSecuredConnectorFactory.readPEMRSAPrivateKey(AbstractSecuredConnectorFactory.java:131)
        at winstone.AbstractSecuredConnectorFactory.configureSsl(AbstractSecuredConnectorFactory.java:75)
        at winstone.HttpsConnectorFactory.start(HttpsConnectorFactory.java:41)
        at winstone.Launcher.spawnListener(Launcher.java:207)
        ... 8 more
Nov 27, 2017 9:42:17 AM winstone.Logger logInternal
SEVERE: Container startup failed
java.io.IOException: Failed to start a listener: winstone.HttpsConnectorFactory
        at winstone.Launcher.spawnListener(Launcher.java:209)
        at winstone.Launcher.<init>(Launcher.java:150)
        at winstone.Launcher.main(Launcher.java:354)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Main._main(Main.java:294)
        at Main.main(Main.java:132)
Caused by: java.lang.IllegalArgumentException: Not B64 encoded
        at org.eclipse.jetty.util.B64Code.decode(B64Code.java:428)
        at org.eclipse.jetty.util.B64Code.decode(B64Code.java:391)
        at winstone.AbstractSecuredConnectorFactory.readPEMRSAPrivateKey(AbstractSecuredConnectorFactory.java:131)
        at winstone.AbstractSecuredConnectorFactory.configureSsl(AbstractSecuredConnectorFactory.java:75)
        at winstone.HttpsConnectorFactory.start(HttpsConnectorFactory.java:41)
        at winstone.Launcher.spawnListener(Launcher.java:207)
        ... 8 more

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    日志显示文件不在 Base64 中。 检查这些文件,它们应该从它们开始: -----开始 RSA 私钥----- -----开始私钥----- -----开始证书-----

    并且它们在 --- 之后的内容应该在 Base64 中

    【讨论】:

    • 证书有 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- 但密钥有 -----BEGIN RSA PRIVATE KEY--- -- Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,2A44DDF99E96A424CF808B1A292441F7 -----END RSA PRIVATE KEY-----我以为那些已经用 Base64 编码了,我错过了什么吗?
    • 删除包含 Proc-Type 的行。您可以将您的私钥的第一行发送给我们,我们会看看它是否看起来像 Base64。
    • TFPvNTQnlsB/Kc4x0Ywj57fxAihtYo1BZnZJThBIok4KzAEzHmMaeRQRRIBC5E9s
    • 看起来不错,您确定第一行包含 ---BEGIN,而第二行以您在此处给出的这一行开头吗?此命令是否返回 RSA 密钥正常:openssl rsa -in jenkins_wildcard.sss.se.com.key.pem -check?
    • OK,我们可以断定私钥是错误的,因为该命令没有返回预期的 RSA 密钥。请记住将帖子标记为有用。
    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 2013-02-16
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2023-03-04
    相关资源
    最近更新 更多