Как добавить самоподписанный сертификат 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.
Увидеть: