如何在 Dockerfile 中为 LDAPS 添加 SSL 自签名证书到 Jenkins?

How to add a SSL self-signed cert to Jenkins for LDAPS within Dockerfile?

我想在 Jenkins 的安全下启用 LDAPS,但我的 LDAP 服务器有一个自签名的 CERT。有没有人这样做过或对此有一些指示?我必须使用 keytool 吗?

在我的 Dockerfile 中,我正在尝试以下操作,但这行不通:

FROM jenkins

USER root

# Install CA certs
COPY ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
RUN chmod +r /etc/ssl/certs/ca-certificates.crt

# Install the Jenkins plugin  
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

# Expose container port 33838 for Jenkins UDP-based auto-discovery
EXPOSE 33848/udp

ENV JAVA_OPTS -Xmx2048m

运行 密钥工具将 CA 证书导入您的 java 密钥库。

参见:

telling java to accept self-signed ssl certificate

原来我只需要在 Dockerfile 中添加它,其中 ldap.cer 是我的自签名证书的证书链。

COPY ldap.cer $JAVA_HOME/jre/lib/security
RUN \
    cd $JAVA_HOME/jre/lib/security \
    && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias ldapcert -file ldap.cer

在我们使用 jenkinsnexussonarqube 的构建服务器上,我们使用提取的和使用 docker run.

的启动参数在主机上准备 cacerts 文件

上查看我的回答