Настройте глобальные параметры LDAP в jenkins - PullRequest
0 голосов
/ 30 августа 2018

Я установил экземпляр Jenkins, пытаюсь настроить LDAP и получаю эту ошибку

Невозможно подключиться к ldaps: //server.domain.com: 636: javax.naming.CommunicationException: server.domain.com:636 [Root Исключение составляет javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: не удалось построить путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели]

Целевой сервер использует самозаверяющий сертификат. Есть ли способ отключить проверку сертификации? В другом экземпляре веб-сервера мы запускаем его с

AUTH_LDAP_GLOBAL_OPTIONS = {
ldap.OPT_X_TLS_REQUIRE_CERT: False }

Может ли быть похожая опция при использовании Jenkins?

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете переопределить фабрику SSL по умолчанию для Java, например https://plugins.jenkins.io/skip-certificate-check

Или вы можете доверять сертификату, выбрав открытый ключ сертификата и импортировав его в ваше доверенное хранилище ./jre/lib/security/cacert.

export JAVA_HOME='/path/to/your/jre'
export LDAPHOST='LDAPHOST01.domain.ccTLD'
export LDAPSSLPORT='636'
export CERTFILENAME='/tmp/ldapcert.cer'

echo "" | openssl s_client -connect $LDAPHOST:$LDAPSSLPORT 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $CERTFILENAME
keytool -import -trustcacerts -alias $LDAPHOST -file $CERTFILENAME -keystore $JAVA_HOME/lib/security/cacerts

При импорте сертификата у вас спросят пароль хранилища ключей. По умолчанию это «changeit» ... в противном случае вы изменили его. Появится подробная информация о сертификате, и вас спросят, действительно ли вы доверяете сертификату.

[lisa@linux02 checkSSLCertExpiry]# keytool -import -trustcacerts -alias $LDAPHOST -file $CERTFILENAME -keystore $JAVA_HOME/lib/security/cacerts
Enter keystore password:
    Owner: CN=LDAPHOST01
    Issuer: CN=LDAPHOST01
    Serial number: 3a2542463f2d59bb4018f9e9179dd6a8
    Valid from: Mon Jun 02 16:55:08 EDT 2014 until: Sun Jun 02 16:55:08 EDT 2019
    Certificate fingerprints:
             MD5:  C3:33:62:B4:A8:30:05:54:3A:F9:AE:99:66:35:EB:22
             SHA1: FA:C2:7B:5D:BF:74:05:58:EF:37:F1:AD:8D:8B:DF:02:93:4C:D8:7E
             SHA256: BE:D6:DF:A9:4F:82:6B:AF:2C:C7:45:9B:B7:A4:0A:B4:9A:81:DB:8E:49:A2:38:16:49:83:F7:4C:D5:EC:61:E0
    Signature algorithm name: SHA1withRSA
    Subject Public Key Algorithm: 2048-bit RSA key
    ...
    #4: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      DNSName: LDAPHOST01
      DNSName: LDAPHOST01.domain.ccTLD
    ]
    Trust this certificate? [no]:  yes
    Certificate was added to keystore

Команда keytool для проверки наличия сертификата в хранилище:

    [lisa@linux02 checkSSLCertExpiry]# keytool -list -keystore $JAVA_HOME/lib/security/cacerts -alias $LDAPHOST
    Enter keystore password:
    LDAPHOST01.domain.ccTLD, Sep 28, 2018, trustedCertEntry,
    Certificate fingerprint (SHA1): FA:C2:7B:5D:BF:74:05:58:EF:37:F1:AD:8D:8B:DF:02:93:4C:D8:7E

Переопределение механизмов доверия Java по умолчанию уже сделано, но, очевидно, удаляет всю безопасность, связанную с проверкой сертификата. Доверие к сертификату сервера LDAP означает, что вам нужно будет знать каждый раз, когда сертификат обновляется, и вам необходимо импортировать новый сертификат в ваш файл cacerts.

Чтобы избежать сбоя аутентификации каждый год или два по истечении срока действия сертификата сервера каталогов, я установил центр сертификации (CA) с довольно длительным (10 лет или около того) сроком действия. Вы можете сделать это с помощью выделенной инфраструктуры PKI или просто OpenSSL. Импортируя открытый ключ CA в cacerts, вы доверяете любому сертификату, выданному CA. То есть, если сертификат каталога обновляется каждый год, вам не нужно ничего делать. Через десять лет, когда сертификат CA будет заменен, вам нужно будет добавить новый сертификат CA в магазин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...