Как добавить самоподписанный сертификат SSL в Jenkins для LDAPS в Dockerfile?

Я хочу включить LDAPS под защитой в Jenkins, но мой сервер 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

3 ответа

Решение

Оказывается, мне просто нужно добавить это в 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

На нашем сервере сборки с jenkins, nexus и sonarqube мы используем извлеченные и подготовленные cacerts файл на хосте, используя параметр запуска для docker run,

Смотрите мой ответ на Stackru: "Импорт самозаверяющего сертификата в JRE cacert Docker не распознается службой"

Запустите keytool, чтобы импортировать сертификат CA в хранилище ключей Java.

Увидеть:

Говоря Java, чтобы принять самоподписанный сертификат SSL

Другие вопросы по тегам