Server Zertifikate erstellen und Signieren

By commandlineFu 09.12.2021

img

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.

CAcert.org logo

  • 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