By commandlineFu 09.12.2021
Wenn Sie im WWW einen Serverdienst aufsetzen wollen, welcher verschlüsselte SSL oder TLS-Verbindungen anbietet.
- HTTPS
- POP3S
- IMAPS
- LDAPS
- SMTP mit TLS
Um eine mit SSL/TLS abgesicherte Verbindung anzubieten, benötigen Sie jedoch ein Serverzertifikat. Dieses muss von einer Zertifizierungsstelle (Certification Authority oder kurz CA) signiert sein. Ein gültiges Serverzertifikat, welches von einer offiziellen Zertifikations-Stelle signiert ist, ist leider nicht kostenlos. Meist werden jährliche Kosten in Höhe hunderten von Euros fällig.
Unter Linux kann man mit Bordmitteln eine eigene CA aufsetzen und ein selbst Zertifikate erstellen und signieren. Das ist ein Vorgang von wenigen Minuten.
Der einzige Unterschied zu einem von einer anerkannten Stelle signierten Zertifikat ist, dass der Client (Browser, Email-Programm, usw.) eine Warnung ausgeben wird, dass er die CA nicht kennt.
Der Benutzer muss dann einmal bestätigen und kann das Zertifikat trotzdem akzeptieren. Aber auch dies kann man umgehen, indem man kostenlos Mitglied bei CAcert wird, und so kostenlos an Server-Zertifikate kommt.
OpenSSL installieren
Für die Verwaltung der Zertifikate und im übrigen auch für die Verschlüsselung der Verbindungen mit SSL und TLS kommt unter Linux fast immer OpenSSL zum Einsatz. Meist ist dieses Packet auf Ihrem Server bereits vorinstalliert. Wenn nicht, müssen Sie das Paket openssl nachinstallieren.
Erstellen der CA
Legen Sie zunächst ein Verzeichnis an, in dem Sie das Zertifikat ablegen wollen.
mkdir /root/cacert
cd /root/cacert
Die Gültigkeit setzen wir mit 10 Jahren bewusst sehr hoch an. Läuft die CA aus, so werden nämlich auch alle damit signierten Serverzertifikate ungültig.
Die CA enthält einen geheimen Schlüssel, welcher automatisch erzeugt und in der Datei cakey.pem abgelegt wird.
Das CA-Zertifikat wird nach CAcert.pem geschrieben.
Der folgende Befehl erzeugt das einen Schlüssel für das Zertifikat mit einer Länge von 2048 Bit:
**openssl req -new -x509 -newkey rsa:2048 -keyout cakey.pem -out CAcert.pem -days 3650**
Generating a 2048 bit RSA private key ............................. ............................. ............................. ............................. ........ .................... ............+++.............. ............................. ............................. +++ writing new private key to 'cakey.pem'
Wer den geheimen Schlüssel der CA kennt, kann damit beliebige Serverzertifikate signieren. Deshalb wird diese Schlüsseldatei nicht im Klartext auf der Festplatte abgelegt, sondern mit einer Passphrase verschlüsselt. Diese Passphrase benötigen Sie immer dann, wenn Sie mit der CA neue Zertifikate ausstellen wollen:
Enter PEM pass phrase: abcdefg
``Verifying - Enter PEM pass phrase: abcdefg`
Nun werden Sie gebeten, Daten einzugeben, welche die CA identifizieren. Diese werden dem Client angezeigt, wenn er aufgefordert wird, das Zertifikat zu akzeptieren oder abzulehnen. Der Code für Deutschland ist DE. Wenn Sie ein Feld leerlassen möchten, so geben Sie einen Punkt ein. Ansonsten wird der in eckigen Klammern stehende Defaultwert eingetragen:
----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code)[AU]: DE State or Province Name (full name)[Some-State]:. Locality Name (eg, city) []:Berlin Organization Name (eg, company) [Internet Widgits Pty Ltd]:Meine AG Organizational Unit Name (eg, section) []:.
Das Feld Common Name (CN) ist hier der offizielle Name der Zertifizierungsstelle.
Für Ihre eigene CA können Sie einfach Ihren eigenen Namen eintragen:
Common Name (eg, YOUR name) []: **Adam Hinz** Email Address []: **[email protected]**
Fertig. Folgende zwei Dateien sind entstanden:
ls -lisa insgesamt 2 drwxr-xr-x 2 root root 112 2006-04-30 12:08 . drwx------ 12 root root 600 2006-04-30 11:54 .. -rw-r--r-- 1 root root 1212 2006-04-30 12:08 CAcert.pem -rw-r--r-- 1 root root 963 2006-04-30 12:08 cakey.pem
Vorsichtshalber sollten Sie die Rechte so setzen, dass die Schlüsseldatei nur für root lesbar ist:
chmod 600 cakey.pem
Sie können nun ausprobieren, ob sie den Schlüssel mit der Passphrase wieder öffnen können:
openssl rsa -in cakey.pem -noout -text Enter pass phrase for cakey.pem: **abcdefg** Private-Key: (1024 bit) modulus: 00:d5:a5:37:51:e9:d9:fa:e3:97:e7:46:b2:88:1a: cf:b7:3a:89:da:a9:63:9f:44:b3:83:cf:0d:70:7d: 68:cd:2d:f9:29:4d:96:3d:d8:6c:5d:9f:79:8a:07: b5:46:80:47:76:14:ae:2b:8b:3e:35:5c:ab:15:34: 33:d9:63:2e:7f:08:4b:ec:77:db:02:45:f8:c7:86: 68:cd:2d:f9:29:4d:96:3d:d8:6c:5d:9f:79:8a:04:
usw…
Schlüssel für das Serverzertifikat erzeugen
Nachdem wir nun eine eigene CA haben, kann diese nun endlich für unseren Server ein Zertifikat herausgeben. Dazu erzeugen wir zunächst einen 2048 Bit langen RSA Schlüssel, der mit AES 128 verschlüsselt auf der Platte abgelegt wird (ja wirklich, auch hier wieder ein verschlüsselter Schlüssel). Die Passphrase muss diesmal nicht sonderlich geheim sein, da wir sie ohnehin im Anschluss wieder entfernen werden. OpenSSL lässt allerdings keine leere Phrase zu:
openssl genrsa -out serverkey.pem -aes128 2048 -days 3650 Generating RSA private key, 2048 bit long modulus ....+++ .......................................+++ e is 65783 (0x10000) Enter pass phrase for serverkey.pem: **abcdefg** Verifying - Enter pass phrase for serverkey.pem: **abcdefg
So. Nun entfernen wir die Passphrase wieder. Warum? Der Serverdienst (Apache, Cyrus, etc.) muss schließlich in der Lage sein, den Schlüssel ohne Ihr Zutun zu lesen. Oder wollen Sie bei jedem Booten des Servers ein Passwort eingeben müssen?
openssl rsa -in serverkey.pem -out serverkey.pem
Enter pass phrase for serverkey.pem: abcdefg writing RSA key
Certificate Signing Request erzeugen
Der nächste Schritt zum eigenen Zertifikat ist ein CSR. Dies muss dann nur noch von der CA signiert werden. Hier sind wieder Angaben analog zum Erstellen der CA nötig, was oft Verwirrung stiftet. Die allgemeinen Daten kann man ggfl. gleich wie oben eingeben:
openssl req -new -key serverkey.pem -out req.pem -nodes You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: **DE** State or Province Name (full name) [Some-State]:**.** Locality Name (eg, city) []:**Berlin** Organization Name (eg, company) [Internet Widgits Pty Ltd]:**Meine AG** Organizational Unit Name (eg, section) []:**.
ACHTUNG, jetzt kommt das Wichtige:
Beim Serverzertifikat ist der Common Name von entscheidender Bedeutung. Hier muss der DNS-Name stehen, unter dem der Client den Server anspricht!
Wird das Zertifikat für eine HTTPS-Verbindung zu lxu.io verwendet, so muss der Common Name eben genau lxu.io heißen.
Anderfalls wird der Browser das Zertifikat nicht akzeptieren, da er davon ausgehen muss, auf dem falschen Server gelandet zu sein.
Common Name (eg, YOUR name) []: lxu.io
Email Address []: [email protected]
Weitere Optionen kann man einfach leer lassen:
A challenge password []:
An optional company name []:
Mittlerweile tummeln sich schon vier Dateien in unserem Verzeichnis:
ls -lisa insgesamt 4 drwxr-xr-x 2 root root 168 2009-02-30 12:20 . drwx------ 12 root root 600 2009-02-30 11:50 .. -rw-r--r-- 1 root root 1212 2009-02-30 12:07 CAcert.pem -rw------- 1 root root 963 2009-02-30 12:09 cakey.pem -rw-r--r-- 1 root root 1017 2009-02-30 12:19 req.pem -rw-r--r-- 1 root root 1679 2009-02-30 12:11 serverkey.pem
OpenSSL-Konfiguration anpassen
Leider kann man bei OpenSSL nicht alle Daten als Kommandozeilenargumente übergeben.
Einige Einstellungen muss man lästigerweise in der Datei /etc/ssl/openssl.cnf ändern, bevor man signieren kann.
Öffnen Sie diese Datei und passen Sie folgende Zeilen in der Sektion [ CA_default ] an:
mcedit /etc/ssl/openssl.cnf
dir = . # Where everything is kept
new_certs_dir = $dir # default place for new certs
private_key = $dir/cakey.pem # The private key
RANDFILE = $dir/.rand # private random number file
default_days = 3650 # how long to certify for
Das Feld default_days ist auf 365 Tage voreingestellt und gibt die Gültigkeit des Zertifikates an. Abgelaufene Zertifikate sind im Übrigen ein sehr häufiges Problem.
Wenn es soweit ist, kennt sich damit nämlich schon lange keiner mehr aus. Deswegen können Sie wie im Beispiel angegeben die Lebensdauer z.B. auf 10 Jahre heraufsetzen.
Wenn Sie beim Serverzertifikat keinen Bundesstaat angegeben haben, benötigen Sie noch folgende Änderung unter
[ policy_match ]:
stateOrProvinceName = optional
Nun muss man noch einige Dateien anlegen:
echo 01 > serial
touch index.txt
Serverzertifikat signieren
Kommen wir zum feierlichen Abschluss: Unsere CA signiert nun das Zertifikat:
openssl ca -in req.pem -notext -out servercert.pem**
Enter pass phrase for ./cakey.pem: **abcdefg**
...
Certificate is to be certified until Apr 27 10:45:36 2016 GMT (3650 days)
Sign the certificate? [y/n]: **y** 1 out of 1 certificate requests certified, commit? [y/n] y
Write out database with 1 new entries
Data Base Updated
Zertifikate installieren
Wohin sie die Zertifikate installieren, hängt natürlich vom jeweiligen Serverdienst ab.
Was allen gemeinsam ist: Sie benötigen nur die Dateien CAcert.pem, servercert.pem und serverkey.pem.
Die Datei cakey.pem wird nicht benötigt. Sie sollte am besten auch nicht auf dem Server liegen sondern an einer sicheren Stelle auf einem anderen Rechner.
Erstellen/aktualisieren eines CAcert Zertifikats
Mit OpenSSL und CAcert ein X.509-Zertifikat für verschiedene Anwendungen erstellen oder aktualisieren
Dieser Artikel beschäftigt sich mit dem CAcert Zertifikat. Darin möchte ich meine Erfahrungen sammeln und diese euch zur verfügung stellen. CAcert ist eine gemeinschaftsbetriebene, nicht-kommerzielle Zertifizierungsstelle (Certification Authority, Root-CA oder kurz CA), die kostenfrei X.509-Zertifikate für verschiedene Einsatzgebiete ausstellt. Damit soll eine Alternative zu den kommerziellen Root-CAs geboten werden, die zum Teil recht hohe Preise für ihre Server-Zertifikate erheben, und daher eher für kommerzielle Server-Betreiber geeignet sind.
- Ein Zertifkat erstellen
- Verzeichnisse erstellen
- OpenSSL Config erstellen
- OpenSSL Zertifikat erstellen
- CAcert Zertifikat beantragen
- Anwendung in Programmen
- Apache-SSL
- Plesk 8.6
- Lighttpd
- Postfix TLS
- Courier POP3-SSL
- Courier POP3-SSL ohne CAcert
- Courier POP3-SSL mit CAcer
- Courier IMAP-SSL
- Courier IMAP-SSL ohne CAcert
- Courier IMAP-SSL mit CAcer
- Ldap SSL mit CAcert
- Links und Quellen
Ein Zertifkat erstellen
Verzeichnisse erstellen
mkdir /etc/ssl-CAcert/
mkdir /etc/ssl-CAcert/apache/
mkdir /etc/ssl-CAcert/lighttpd/
mkdir /etc/ssl-CAcert/mail/
mkdir /etc/ssl-CAcert/proftpd/
mkdir /etc/ssl-CAcert/ldap/
OpenSSL Config erstellen
touch /etc/ssl-CAcert/openssl.conf
mcedit /etc/ssl-CAcert/openssl.conf
RANDFILE = $ENV::HOME/.rnd
[ req ]
default_bits = 1024
default_keyfile = keyfile.pem
distinguished_name = req_distinguished_name
attributes = req_attributes prompt = no
output_password =
[ req_distinguished_name ]
C = DE # Ihr Heimatland
ST = BUNDESLAND # Ihr Bundesland
L = STADT # Ihre Stadt
O = FIRMA # Ihre Firma
OU = ORGANISATION # Ihre Organisation
CN = DOMAIN.TLD # Wichtig - ihre Webseite
emailAddress = [email protected] # Ihre e-mail Addresse
[ req_attributes ]
challengePassword = Beliebiges Passwort
OpenSSL Zertifikat erstellen
openssl genrsa -des3 -out /etc/ssl/certs/apache_server.key 2048
openssl req -new -days 1825 -key /etc/ssl/certs/apache_server.key
-out /etc/ssl/certs/apache_server.csr
-config /etc/ssl-CAcert/openssl.conf
openssl rsa -in /etc/ssl/certs/apache_server.key -out /etc/ssl/certs/apache_private.key.decrypted
CAcert Zertifikat beantragen
- Account bei CAcert erstellen und die entsprechende Domain, unter Domains
- Unter Link: Domains - Hinzufügen, eintragen. Nachdem die Domain hinzugefügt wurde, kann nun das Server Zertifikat beantragt werden. Dazu geht man in Server Zertifikate
- Unter Link Server Zertifikate: Neu und kopiert den Inhalt von /etc/ssl/certs/apache_server.csr in das Textfeld.
cat /etc/ssl/certs/apache_server.csr
—–BEGIN CERTIFICATE REQUEST—– . . —–END CERTIFICATE REQUEST—–
Nach ein paar Sekunden wird das CAcert Zertifikat angezeigt:
—–BEGIN CERTIFICATE—— . . —–END CERTIFICATE—–
Nun eine neue Datei mit den Namen apache_server.crt erstellen und das Zertifikat von CAcert dort hinein kopieren:
mcedit /etc/ssl/certs/apache_server.crt
Anwendung in Programmen
Apache-SSL
# Nun die Zertifikate und Schlüssel in das /etc/ssl-CAcert/apache Verzeichnis kopieren:
cp /etc/ssl/certs/apache_server.key /etc/ssl-CAcert/apache/
cp /etc/ssl/certs/apache_server.csr /etc/ssl-CAcert/apache/
cp /etc/ssl/certs/apache_server.crt /etc/ssl-CAcert/apache/
cp /etc/ssl/certs/apache_private.key.decrypted /etc/ssl-CAcert/apache/
# Einstellungen von Apache-SSL in /etc/apache-ssl/httpd.conf vornehmen:
SSLCertificateFile /etc/ssl-CAcert/apache/apache_server.crt
SSLCertificateKeyFile /etc/ssl-CAcert/apache/apache_private.key.decrypted
# Nun noch Apache-SSL neustarten:
/etc/init.d/apache-ssl restart
Plesk 8.6
- Bei Plesk anmelden
- Auf Link: “Server” gehen
- Auf Link: “Zertifikate” gehen
- Auf Link: “Neues Zertifikat hinzufügen” gehen
Folgende Felder ausfüllen und die Dateien hochladen:
Zertifikat
- Zertifikatsname *
Einstellungen
- Bits
- Land
- Bundesland/Kanton *
- Ort (Stadt) *
- Organisationsname (Firma) *
- Abteilungsname
- Domainname *
- E-Mail *
Zertifikatdateien hochladen
- Private Key *Zertifikat *CA-Zertifikat
- Pflichtfelder
Lighttpd
Als eine gute Alternative zu dem Ressourcen lastigen Apache-SSL Server bietet sich Lighttpd an.
cp /etc/ssl/certs/apache_server.crt /etc/ssl-CAcert/lighttpd/lighttpd.crt
cp /etc/ssl/certs/apache_private.key.decrypted /etc/ssl-CAcert/lighttpd/lighttpd.key.decrypted
# Jetzt noch das Class 3 - CAcert Zertifikat herunterladen:
wget --no-check-certificate https://www.CAcert.org/certs/root.crt -O /etc/ssl-CAcert/lighttpd/CAcert.crt
chmod a=r /etc/ssl-CAcert/lighttpd/CAcert.crt
# Lighttpd brauch eine PEM Datei. Dazu wird die crt und die key Datei in diese eingefügt:
cat /etc/ssl-CAcert/lighttpd/lighttpd.crt /etc/ssl-CAcert/lighttpd/lighttpd.key.decrypted > /etc/ssl-CAcert/lighttpd/lighttpd.pem
Jetzt noch die 10-ssl.conf von Lighttpd bearbeiten:
mcedit /etc/lighttpd/conf-enabled/10-ssl.conf
ssl.engine = "enable" ssl.use-sslv2 = "disable"
ssl.cipher-list = "ALL:!ADH:!LOW:!SSLv2:!EXP:+HIGH:+MEDIUM"
ssl.pemfile = "/etc/ssl-CAcert/lighttpd/lighttpd.pem"
ssl.ca-file = "/etc/ssl-CAcert/lighttpd/CAcert.crt"
Jetzt kann Lighttpd neu gestartet werden:
/etc/init.d/lighttpd force-reload
Postfix TLS
Um Postfix mit SSL zu benutzen, können die Zertifikate und Schlüssel, welche eben generiert wurden, verwendet werden.
Dazu werden einfach folgende Dateien nach /etc/ssl-CAcert/mail/ kopiert.
cp /etc/ssl/certs/apache_server.key /etc/ssl-CAcert/mail/mail.key
cp /etc/ssl/certs/apache_server.csr /etc/ssl-CAcert/mail/mail.csr
cp /etc/ssl/certs/apache_server.crt /etc/ssl-CAcert/mail/mail.crt
cp /etc/ssl/certs/apache_private.key.decrypted /etc/ssl-CAcert/mail/mail.key.decrypted
# Jetzt wird noch das root Zertifikat von CAcert benötigt:
wget --no-check-certificate https://www.CAcert.org/certs/root.crt -O /etc/ssl-CAcert/mail/CAcert.crt
chmod a=r /etc/ssl-CAcert/mail/CAcert.crt
Nun muss nur noch die main.cf Config Datei von Postfix angepasst werden:
mcedit /etc/postfix/main.cf
smtp_tls_key_file = /etc/ssl-CAcert/mail/mail.key.decrypted
smtp_tls_cert_file = /etc/ssl-CAcert/mail/mail.crt
smtp_tls_CAfile = /etc/ssl-CAcert/mail/CAcert.crt
smtpd_tls_key_file = /etc/ssl-CAcert/mail/mail.key.decrypted
smtpd_tls_cert_file = /etc/ssl-CAcert/mail/mail.crt
smtpd_tls_CAFile = /etc/ssl-CAcert/mail/CAcert.crt
Nachdem abspeichern muss Postfix neu gestartet werden, damit die Ändernungen wirksam werden.
/etc/init.d/postfix restart
Courier POP3-SSL
Courier POP3-SSL braucht eine PEM Datei, welche aus der .key Datei, sowie der beglaubigten CRT Datei von CAcert besteht.
Um für Courier ein Zertifikat zu erstellen wird nicht unbedingt ein CAcert CRT benötigt.
Aufgrund dessen habe ich auch eine HowTo ohne CAcert gepostet.
Weiter unten steht dann die Anleitung für eine PEM mit CAcert CRT.
Courier POP3-SSL ohne CAcert
Als nächstes wird Courier-POP3 SSL beigebracht. Dazu wird die Datei pop3d.cnf bearbeitet:
mcedit /etc/courier/pop3d.cnf
RANDFILE = /usr/lib/courier/pop3d.rand
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=DE
ST=BUNDESLAND
L=STADT
O=IRGENDWAS-REINSCHREIBEN
OU=IRGENDWAS-REINSCHREIBEN
CN=domain.tld #Wichtig
emailAddress=[email protected]
Falls schonmal ein Zertifikat erstellt worden ist, so lösche es nun:
rm /usr/lib/courier/pop3d.pem
Jetzt ist es Zeit ein Zertifikat zu erstellen:
mkpop3dcert
Courier nun neu starten mit:
/etc/init.d/courier-pop-ssl restart
Courier POP3-SSL mit CAcert
PEM Datei erstellen:
cat /etc/ssl-CAcert/mail/mail.key.decrypted /etc/ssl-CAcert/mail/mail.crt > /etc/ssl-CAcert/mail/mail.pem
Nun noch in der /etc/courier/pop3dssl den Pfad zur eben erstellten PEM Datei verweisen:
mcedit /etc/courier/pop3d-ssl TLS_CERTFILE=/etc/ssl-CAcert/mail/mail.pem
Courier nun neu starten mit:
/etc/init.d/courier-pop-ssl restart
Courier IMAP-SSL
Courier IMAP-SSL brauch eine PEM Datei, welche aus der key Datei, sowie der beglaubigten CRT Datei von CAcert besteht.
Um für Courier ein Zertifikat zu erstellen wird nicht unbedingt ein CAcert CRT benötigt.
Aufgrund dessen habe ich auch eine HowTo ohne CAcert gepostet.
Weiter unten steht dann die HowTo Anleitung für eine PEM mit CAcert CRT.
Courier IMAP-SSL ohne CAcert
Als nächstes wird Courier-IMAP SSL beigebracht. Dazu wird die Datei imapd.cnf bearbeitet:
mcedit /etc/courier/imapd.cnf
RANDFILE = /usr/lib/courier/imapd.rand
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=DE
ST=BUNDESLAND
L=STADT
O=IRGENDWAS-REINSCHREIBEN
OU=IRGENDWAS-REINSCHREIBEN
CN=domain.tld #Wichtig
emailAddress=[email protected]
Falls schonmal ein Zertifikat erstellt worden ist, so lösche es nun:
rm /usr/lib/courier/imapd.pem
Jetzt ist es Zeit ein Zertifikat zu erstellen:
mkimapdcert
Das ganze sieht dann so aus:
mkimapdcert Generating a 1024 bit RSA private key ..................................++++++ ...............++++++ writing new private key to '/usr/lib/courier/imapd.pem' ----- 1024 semi-random bytes loaded Generating DH parameters, 512 bit long safe prime, generator 2 This is going to take a long time .........+................................
Jetzt kann courier-imap-ssl neu gestartet werden:
/etc/init.d/courier-imap-ssl restart
Courier IMAP-SSL mit CAcert
PEM Datei erstellen:
cat /etc/ssl-CAcert/mail/mail.key.decrypted /etc/ssl-CAcert/mail/mail.crt > /etc/ssl-CAcert/mail/mail.pem
Als nächstes wird Courier-IMAP SSL mit CAcert CRT beigebracht.
Nun noch in der /etc/courier/imapd-ssl den Pfad zur eben erstellten PEM Datei verweisen:
mcedit /etc/courier/imapd-ssl
TLS_CERTFILE=/etc/ssl-CAcert/mail/mail.pem
TLS_TRUSTCERTS=/etc/ssl-CAcert/mail/mail.crt
TLS_VERIFYPEER=none
Courier nun neu starten mit:
/etc/init.d/courier-imap-ssl restart
Ldap SSL mit CAcert
Damit die Adressbücher sicher verwaltet werden können, sollte ldap natürlich auch unter SSL betrieben werden.
# Dazu sind nur wenige Schritte nötig, da die Zertifikate bereits erstellt wurden.
cp /etc/ssl-CAcert/mail/mail.key.decrypted /etc/ssl-CAcert/ldap/ldap.key.decrypted
cp /etc/ssl-CAcert/mail/mail.crt /etc/ssl-CAcert/ldap/ldap.crt
cp /etc/ssl-CAcert/mail/CAcert.crt /etc/ssl-CAcert/ldap/CAcert.crt
# Ohne Cacert kann das Zertifikat folgendermaßen erstellt werden:
# (TLSCAcertificateFile wird hierbei nicht benötigt)
openssl req -new -x509 -nodes -out /etc/ssl-CAcert/ldap/slapdcert.pem -keyout /etc/ssl-CAcert/ldap/slapdkey.pem -days 365
Als nächstes Ldap sagen, wo genau die Zertifikate liegen:
mcedit /etc/ldap/slapd.conf
TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSCAcertificateFile "/etc/ssl-CAcert/ldap/CAcert.crt"
TLSCertificateFile "/etc/ssl-CAcert/ldap/ldap.crt"
TLSCertificateKeyFile "/etc/ssl-CAcert/ldap/ldap.key.decrypted"
loglevel 256
#TLSVerifyClient demand
#TLSVerifyClient never
Die Datei ldap.conf muss auch angepasst werden:
mcedit /etc/ldap/ldap.conf
URI ldaps://example.org
TLS_REQCERT demand
TLS_CACERTDIR /etc/ssl/certs/
Nun kann slapd neu gestartet werden:
/etc/init.d/slapd restart