gpt4 book ai didi

docker - 如何将 CA 根证书添加到 Jenkins Docker 容器上的 LDAP keystore ?

转载 作者:行者123 更新时间:2023-12-02 19:22:38 27 4
gpt4 key购买 nike

我想在 Docker 容器中的 Jenkins 上配置 ldaps。

问题:Jenkins 将不信任我的证书(由 Wireshark 跟踪确认),出现证书未加载到 keystore (或正确的 keystore )

错误信息:

  • 在 Jenkins 中:无法连接到 ldaps://taxmducs01-v.cybertax.cso.com:636:javax.naming.CommunicationException:简单绑定(bind)失败:taxmducs01-v.cybertax.cso.com:636 [根异常是 javax。 net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:
  • 在 Wireshark 中:警报(级别:致命,描述:证书未知)

  • 故障排除执行:
  • 确认 LDAP 工作正常,通过 :389 设置 LDAP 工作正常。我也知道 LDAPS 可以工作,因为我已经使用该服务器上的许多其他设备配置了 ldaps。
  • 通读以下来源:
  • https://docs.oracle.com/cd/E19509-01/820-3399/ggfrj/index.html
  • https://wiki.jenkins.io/display/JENKINS/LDAP+Plugin
  • 按照本指南帖子中的说明进行操作
    How to add a SSL self-signed cert to Jenkins for LDAPS within Dockerfile?
  • 执行 tcpdump,提取字节字符串,使用 openssl 将其转换为 .cer 文件,并使用我的 dockerfile 复制过来。我知道我有正确的证书。 docker-compose log 显示它已复制,但是当我检查 keystore 时,我的证书永远不会出现。注意:检查位于/etc/ssl/certs/java/cacerts 的 keystore ,这是正确的 keystore 吗?

  • 这是我的 docker 文件:
    FROM jenkinsci/blueocean

    USER root

    COPY ["entrypoint.sh", "/"]

    RUN apk add sudo && chmod 755 /entrypoint.sh

    ENTRYPOINT ["/bin/bash","-c","./entrypoint.sh"]

    COPY ["ldapRoot.cer", "/tmp"]
    RUN \
    cd /tmp \
    && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias ldapcert -file ldapRoot.cer

    这是 docker-compose 的日志输出:
    docker-compose up --build
    Building jenkins
    Step 1/7 : FROM jenkinsci/blueocean
    ---> 9e29fdde63cc
    Step 2/7 : USER root
    ---> Using cache
    ---> 597101d109b7
    Step 3/7 : COPY ["entrypoint.sh", "/"]
    ---> Using cache
    ---> 32eea6c01a84
    Step 4/7 : RUN apk add sudo && chmod 755 /entrypoint.sh
    ---> Using cache
    ---> 28858a5e6ec5
    Step 5/7 : ENTRYPOINT ["/bin/bash","-c","./entrypoint.sh"]
    ---> Using cache
    ---> f466e9893c75
    Step 6/7 : COPY ["ldapRoot.cer", "/tmp"]
    ---> 64dda06d6ed4
    Step 7/7 : RUN cd /tmp && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias ldapcert -file ldapRoot.cer
    ---> Running in 95309101bec9
    Certificate was added to keystore
    Removing intermediate container 95309101bec9
    ---> cff58441080f
    Successfully built cff58441080f
    Successfully tagged docker_jenkins:latest
    Recreating docker_jenkins_1 ... done

    知道我做错了什么吗?

    最佳答案

    我相信您刚刚创建了一个新的 keystore 文件,/tmp/cacerts而不是更新 /etc/ssl/certs/java/cacerts .如果您更新 keytool 会怎样?导入命令指向/etc/ssl/certs/java/cacerts ?或者,是 entrypoint.sh使用 /tmp/cacerts作为您的信任库?

    关于docker - 如何将 CA 根证书添加到 Jenkins Docker 容器上的 LDAP keystore ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58617169/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com