2016-07-28 22 views
0

Ich habe selbstsignierte Zertifikate für meinen Server erstellt und die StartTLS unter dem unverschlüsselten Port ist in Ordnung, aber ich muss auch unter dem verschlüsselten Port arbeiten, da Jenkins ldap-plugin die StartTLS-Funktion nicht verwenden kann .LDAPS-Dienst in SLAPD zulassen

beginne ich meinen Server mit:

slapd -h "ldap:/// ldaps:///" -f /etc/ldap/slapd.conf -d config -d conns -d packets 

Wenn ich diese ldapsearch laufen:

ldapsearch -d 1 -v -H "ldaps://[server ip]" -D "[manager dn]" -w [manager password] 

erhalte ich diesen Fehler:

ldap_url_parse_ext(ldaps://172.17.0.1) 
ldap_initialize(ldaps://172.17.0.1:636/??base) 
ldap_create 
ldap_url_parse_ext(ldaps://172.17.0.1:636/??base) 
ldap_sasl_bind 
ldap_send_initial_request 
ldap_new_connection 1 1 0 
ldap_int_open_connection 
ldap_connect_to_host: TCP 172.17.0.1:636 
ldap_new_socket: 4 
ldap_prepare_socket: 4 
ldap_connect_to_host: Trying 172.17.0.1:636 
ldap_pvt_connect: fd: 4 tm: -1 async: 0 
attempting to connect: 
connect errno: 111 
ldap_close_socket: 4 
ldap_err2string 
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1) 

aber wenn ich laufen openssl die testen Verbindung:

openssl s_client -connect [server ip]:686 

ich erhalte, dass es in Ordnung ist:

CONNECTED(00000003) 
depth=1 C = BR, ST = Sao Paulo, O = example.com, CN = Davi Diorio Mendes, emailAddress = [email protected] 
verify return:1 
depth=0 C = BR, ST = Sao Paulo, L = Campinas, O = example.com, CN = example.com, emailAddress = [email protected] 
verify return:1 
--- 
Certificate chain 
0 s:/C=BR/ST=Sao Paulo/L=Campinas/O=example.com/CN=example.com/[email protected] 
    i:/C=BR/ST=Sao Paulo/O=example.com/CN=Davi Diorio Mendes/emailAddress=[email protected] 
1 s:/C=BR/ST=Sao Paulo/O=example.com/CN=Davi Diorio Mendes/[email protected] 
    i:/C=BR/ST=Sao Paulo/O=example.com/CN=Davi Diorio Mendes/[email protected] 
--- 
Server certificate 
-----BEGIN CERTIFICATE----- 
MIID+TCCAuGgAwIBAgIJAOcBkNiAzXUIMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV 
BAYTAkJSMRIwEAYDVQQIDAlTYW8gUGF1bG8xFDASBgNVBAoMC2V4YW1wbGUuY29t 
MRswGQYDVQQDDBJEYXZpIERpb3JpbyBNZW5kZXMxITAfBgkqhkiG9w0BCQEWEmRk 
aW9yaW9AYnIuaWJtLmNvbTAeFw0xNjA3MjcxNTUxNDFaFw0xNzA3MjcxNTUxNDFa 
MIGDMQswCQYDVQQGEwJCUjESMBAGA1UECAwJU2FvIFBhdWxvMREwDwYDVQQHDAhD 
YW1waW5hczEUMBIGA1UECgwLZXhhbXBsZS5jb20xFDASBgNVBAMMC2V4YW1wbGUu 
Y29tMSEwHwYJKoZIhvcNAQkBFhJkZGlvcmlvQGJyLmlibS5jb20wggEiMA0GCSqG 
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDu8RXjY37lP8foIE0QZ9sQYotjRFdKBxeb 
483dHf8NzbUTLILNqImzqU+EqBNRNxuHDhBh45/kM24A5dkcjaS5ZqCR/1pOR8bD 
ojoeuNqEu/9ga4MWLqrj0rWxQywiBG/O9VzZg3eV7u34oTj3Rx7paohvU8KOFr8/ 
r9/cXG6QBXKl8Iu8jdo3KtWy7GcN9HOGkJrFwQ6sKbgIKMFpjrV3ByNapTCPJd32 
kFY3Hkq2l54iyJGbO3q62HE3/KYKlRPR2uRjOj4YPxU13bvwRAUd1D77xMDEKya6 
yj5M+gYGD8PHIn1lBvWOBaa8tzmM2zGk2H6eMoCFgtJAtqAOVIuRAgMBAAGjezB5 
MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENl 
cnRpZmljYXRlMB0GA1UdDgQWBBRXjVcxfJOMwLS70jGjJb8X8xc2IDAfBgNVHSME 
GDAWgBQbykbeuV2BDwKARaTYvpZwwKM/jjANBgkqhkiG9w0BAQsFAAOCAQEAgfKs 
kFXxY6ZBzcvHU3wwu5kXZo8BYniJ3YZTGGX45JPF9v0yZzAjWAnYR9xJew+Ac1sZ 
GrIA1aI1ooEjo1R42JUelo/PnY5rTuveaRvKG+b2H8+LOf0riIkG92byHazmBrK4 
PX7ShgdEvK/B3YoDH201RpO8Fjugb31D9j9XcyfmBioKVUcRuxPTlpzOSWeyW8Db 
GZ8Gr2Rz7Vxf0/mV25ikvXWHc/e2zNSD/C6bJcRlgaIo/hkoclpJ510oqj+XVcqI 
PK/+QABzb9TX2uoMHA+nb7eV3aUzYHya56NAQNhbdfV1gogHFYPFntiE/dJYNM9c 
cIWaKjrHXMFfnM2WIg== 
-----END CERTIFICATE----- 
subject=/C=BR/ST=Sao Paulo/L=Campinas/O=example.com/CN=example.com/[email protected] 
issuer=/C=BR/ST=Sao Paulo/O=example.com/CN=Davi Diorio Mendes/[email protected] 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 2562 bytes and written 483 bytes 
--- 
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 
Server public key is 2048 bit 
Secure Renegotiation IS supported 
Compression: NONE 
Expansion: NONE 
SSL-Session: 
    Protocol : TLSv1.2 
    Cipher : ECDHE-RSA-AES256-GCM-SHA384 
    Session-ID:  A57A8114450D576489124B51B0E68EC8C6F59BDDA8BEDF1DD5CA456C878FD66B 
    Session-ID-ctx: 
    Master-Key:  90734979FE60577DD24E35B03BBD6F2E57DF457C54BE0B320FD73C384A8F50A1CB783D629F22E060E89C7EB1B7D70FDA 
    Key-Arg : None 
    PSK identity: None 
    PSK identity hint: None 
SRP username: None 
Start Time: 1469733255 
Timeout : 300 (sec) 
Verify return code: 0 (ok) 
--- 

Das ist mein slapd.conf:

# slapd.conf - Configuration file for LDAP SLAPD 
########## 
# Basics # 
########## 
include /etc/ldap/schema/core.schema 
include /etc/ldap/schema/cosine.schema 
include /etc/ldap/schema/inetorgperson.schema 

pidfile /var/run/slapd/slapd.pid 
argsfile /var/run/slapd/slapd.args 
loglevel none 

modulepath /usr/lib/ldap 
moduleload back_hdb 

########### 
# SSL/TLS # 
########### 
TLSCACertificateFile /etc/ldap/example.com.cacert.pem 
TLSCertificateFile /etc/ldap/example.com.cert.pem 
TLSCertificateKeyFile /etc/ldap/example.com.key.pem 

########################## 
# Database Configuration # 
########################## 
database hdb 
suffix "dc=example,dc=com" 
rootdn "cn=Manager,dc=example,dc=com" 
rootpw admin 
directory /var/local/ldap/database 
index objectClass,cn,uid,mail eq 

######## 
# ACLs # 
######## 
access to attrs=userPassword 
     by anonymous auth 
     by self write 
     by * none 

access to * 
     by self write 
     by * none 

und das ist mein ldap.conf:

# 
# LDAP Defaults 
# 

# See ldap.conf(5) for details 
# This file should be world readable but not world writable. 

BASE dc=example,dc=com 
URI ldap://localhost 
BINDDN cn=Manager,dc=example,dc=com 

SIZELIMIT 0 
TIMELIMIT 0 
#DEREF  never 

# TLS certificates (needed for GnuTLS) 
TLS_CACERT /etc/ldap/example.com.cacert.pem 
TLS_REQCERT allow 

niemand kann vor Ort mein Fehler? Oder zeig mir eine Richtung?

Danke!

+0

Stack Overflow ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) wäre ein besserer Ort, um zu fragen. Siehe auch [Wo veröffentliche ich Fragen zu Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

+0

*** 'CN = example.com' *** ist wahrscheinlich falsch. Hostnamen gehen immer in das * SAN *. Wenn es im * CN * vorhanden ist, muss es auch im * SAN * vorhanden sein (in diesem Fall müssen Sie es zweimal auflisten). Weitere Regeln und Gründe finden Sie unter [Wie unterschreiben Sie eine Zertifikatsignierungsanforderung mit Ihrer Zertifizierungsstelle?] (Http://stackoverflow.com/a/21340898/608639) und [Wie erstelle ich ein selbstsigniertes Zertifikat mit openssl?] (http://StackOverflow.com/q/10175812/608639) – jww

+0

@Jww, ich verwendete 'CN = example.com' nach der openLDAP-Dokumentation:" Erstellen Sie eine Zertifikatsanforderung und einen privaten Schlüssel für den Server. Denken Sie daran, dass der allgemeine Name für dieses Zertifikat sollte der vollqualifizierte Domänenname des Servers sein "- [OpenLDAP-FAQ-Wie verwende ich TLS/SSL] (http://www.openldap.org/faq/data/cache/185.html) –

Antwort

0

Ich löse endlich die Frage.

Ich begann Secure Slapd am Port 686, während der Standard-Secure-Port 636 ist, wenn also Clients versuchen, eine Verbindung zum sicheren Port herzustellen, war der Port falsch. Ich habe den sicheren Port wie üblich auf 636 eingestellt.

Anderer Fehler, das Serverzertifikat muss den vollständig qualifizierten Domänennamen im CN-Feld verwenden, und ich habe example.com nur als Test verwendet, aber es muss die Serveradresse sein. Da ich keinen Domänennamen für den Server habe, habe ich die Server-IP verwendet.