Meine (ungeprüfte) Lösung wäre, das Zertifikat in /etc/ssl/certs/ zu kopieren (Welt-Lesbar), an das zusammengefasste ca-certificates.crt anzuhängen und den Apachen zu restarten.
Es könnte sein, dass der Apache seine Zertifikate woanders herholt, das kann ich grad nicht testen, aber wo immer er sie liest, da sollte’s hin.
… also müsste man z.B. ein LE-Zertifikat, das auf den Server in der DMZ ausgestellt wurde, an diese Stelle kopieren? Damit wäre das Konzept mit dem HAProxy und LE über den Haufen geworfen, oder??
Davor machst du ein csr (certificat signing request) wie du es mit LE machst (SUBJECT ersetze ich entsprechend). Aber das solltest du ja für deinen LDAP getan haben, oder?
Ich habe das nicht getan … vielleicht wird’s bei der Installation automatisch gemacht? Wer kann das beantworten??
Und vielleicht erklärt das auch die Probleme, die ich im Moment mit ldaps://-Abfragen habe??
Ich hatte eigentlich (laut Anleitung von Holger@baumhof ) versucht, moodle mit dem AD zu verbinden. Das soll über Port 636 laufen, liefert mir aber immer nur " Das LDAP-Modul kann keine Serververbindung herstellen: Server: ‚ldaps://server.linuxmuster.meine-schule.de:636‘, Connection: ‚Resource id #536‘, Bind result: ‚‘
Als ldap Server hast du vermutlich slapd. Der hat eine Konfiguration in /etc/ldap/slapd.d, allerdings im .ldif format.
Ich würde erstmal schauen, wo der Knabe lauscht: netstat -lptun|grep slapd sollte zeigen, ob er 389 (ldap) oder 636 (ldaps) anbietet oder noch weitere ports.
Dann kannst du per echo -n | openssl s_client -CApath /etc/ssl/certs/ -connect localhost:636 schauen, was er für ein Zertifikat anbietet. Das würde ich erstmal von der Box schauen, wo der ldap-Server läuft und dann auf den Boxen, die dahin verbinden sollen. Da sollte natürlich immer dieselbe Antwort kommen, ansonsten hast du ein Firewall-Problem.
die config auslesen - da sollte unter olcTLSCertificateFile der Name der Zertifikats-Datei erscheinen (und entsprechend auch die Datei mit dem Schlüssel).
Nein, das ist ein offizielles für „aussen“, denke ich.
Was kommt denn da? Diesen Base64-Teil (zwischen den -----(BEGIN|END) CERTIFICATE----- inkl den ----Zeilen), den du da siehst kannst du in eine Datei packen und dem Apachen geben…
Ah verdammt: Eins vergesse ich immer. Das ganze braucht natürlich korrekte Server-Namen. Wenn alles über die IP läuft, geht natürlich kein SSL oder TLS. Der Name ist der cn im Zertifikat.
funktioniert nicht: ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
Nur so als Vermutung: [root@server:/etc/ldap]$ cat ldap.conf
Da steht:
#
# 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://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
Kann es sein, dass man das DA auf das LE-Zertifikat umbiegen muss??
Es würde mich wundern, wenn LE da eine Rolle spielt, da ja der Samba-Server nur Intern genutzt wird und mit LE das nicht möglich ist (naja, kommt auf den cn an, klar…).
Was sagen die openssl-Befehle, die ich oben geschrieben habe?
Also diese Zertifikate können einen ja echt bekloppt machen …
Ich habe für das interne Netz (aus diversen Gründen) einen FQDN gewählt, der auch extern auflösbar ist. Von daher habe ich auch ein LE-Zertifikat, das auf meinen Server ausgestellt werden konnte. Im LAN funktioniert das: https://server.linuxmuster.meine-schule.de liefert eine gesicherte Verbindung („grünes Schloss“)
Die Verbindung klappt, ich bekomme ein Zertifikat, das aber wesentlich kürzer als das LE-Zert ist. Nun habe ich in die smb.conf geschaut und siehe da:
Gib das dem Apachen (und jedem andren client) als vertrauenswürdigem Zertifikat (also vermutlich in /etc/ssl/certs), dann sollte’s gehn.
Oder stell die Einstellungen da um, offizielle LE Zertifikat zu ziehen, wenn die Namen stimmen (cn muss in den client-Einstellungen genutzt werden und zu der IP führen).
ja, „eigentlich“ … ich finde es im Moment eher … äh, … „unübersichtlich“.
Unter der alten Version 6.x haben viele die Option TLS_REQCERT never gesetzt – könnte mir denken, dass das genau aus diesem Grund war: wenn man den Server über Port 636 abfragen wollte und kein signiertes Zertifikat vorweisen konnte, kam die Verbindung nicht zustande, richtig?
Jetzt habe ich unter v7 diese Files auf dem Server:
-rwxr-x--- 1 root wheel 1648 Nov 21 15:57 ca.cer*
-rwxr-x--- 1 root wheel 3933 Nov 21 15:57 fullchain.cer*
-rwxr-x--- 1 root wheel 2285 Nov 21 15:57 server.linuxmuster.meine-schule.de.cer*
-rwxr-x--- 1 root wheel 957 Nov 21 15:57 server.linuxmuster.meine-schule.de.conf*
-rwxr-x--- 1 root wheel 1700 Nov 21 15:57 server.linuxmuster.meine-schule.de.csr*
-rwxr-x--- 1 root wheel 220 Nov 21 15:57 server.linuxmuster.meine-schule.de.csr.conf*
-rwxr-x--- 1 root wheel 3243 Nov 21 11:32 server.linuxmuster.meine-schule.de.key*
Ich nehme stark an, dass ich den LE-Krempel rüberholen und die selbst erzeugten Zertifikate ersetzen kann (wenn ich weiß, welche Datei welcher entspricht…)
.csr ist der request, der ist unbedeutend für diesen Zweck.
.csr.conf unklar.
.conf kenne ich auch nicht, könnte ein config snipped für den apachen sein.
.key ist der private key.
.cer ist wohl das Zertifikat, genauso wie .cert.pem (pem ist das format in dem das da alles ist).
.cert.nundle.pem ist vermutlich die chain - fraglich, warum ein self-signed eine chain hat… hm.
ca.cer wird das X3 root cert von LE sein
fullchain.cer ist vermutlich car.cer + serv…cer (größe passt ja)
du hast immer noch nicht gesagt, was cn und issuer von dem selfsigned sind. aber nehmen wir an, dass du die nicht nutzen willst, siehts wohl nach dem kopieren so aus in der config:
Das Kopieren der „richtigen“ Zertifikate kommt mir aber sinnvoller vor??! Da ich aber nicht weiß, welche anderen Dienste noch auf /etc/linuxmuster/ssl zugreifen und ein gültiges Zertifikat erwarten, ist es vermutlich noch sinnvoller, die alten Namen auf dem v7-Server beizubehalten…?!!
übrigens: Das hier gibt’s auch noch auf dem v7-Server:
Ja, bei den beiden Dateien server.cert.pem und server.key.pem kann ja nicht viel passieren … bin nur unsicher, was cacert.pem angeht, da dort ja noch mehr Dateien liegen. Wenn ich nur die eine Datei des Paketes ersetze, passt das nach meinem Verständgnis nicht mehr zusammen, oder?
Also cacert,crt, cacert.pem.b64, cacert.srl und cakey.pem habe ich bei den LE-Zert. nicht
ein cert signiert ein konkretes anderes cert oder einen key. wenn du die mischst, funktioniert’s nicht mehr.
wenn du die einen dateien auf den anderen rechner kopierst, wird ja nichts ueberschrieben. dann stellst du die konfig um und startest den samba server wieder.
die originalzeilen kannst du ja auskommentiert drin lassen, dann kannst du schneller zurückrollen.
wenn du unsicher bist, was da wie zusammengehört, kannst du ja mal schauen, wie das da im haproxy konfiguriert ist.
Das ist nachvollziehbar und wird dann scheinbar passend umbenannt. Aber auf dem v7-Server sind da neben die server*-Files eben auch noch die ganzen cacert.*-Files. Weiß der Geier, wo die herkommen …?!?