Einstellen und Vertrauen einer selbst signierten Zertifizierungsstelle (CA) für S/MIME in Group-Office

GO-Testing S/Mime

Wir arbeiten an der nächsten größeren Version 6.8. In dieser Version wollen wir die Unterstützung für PHP 8.2 integrieren. Eines der Dinge, die wir tun mussten, war, die alte Mail-Komponente SwiftMailer zu ersetzen, die jetzt veraltet ist. Wir haben uns entschieden, stattdessen PHPMailer zu verwenden, weil es einfach ist und keine Abhängigkeiten zu anderen Bibliotheken hat. Es fehlte nur die volle Unterstützung für S/MIME-Signierung und -Verschlüsselung, also haben wir PHPMailer erweitert und diese Funktionen implementiert.

Für das Testing von S/MIME brauchten wir ein Zertifikat, das ich zum Signieren, Verschlüsseln und Verifizieren verwenden konnte. Ich habe openssl verwendet, um mein Zertifikat auf der Kommandozeile zu erzeugen:

Zertifizierungsstelle erstellen

Der erste Schritt besteht darin, eine eigene Zertifizierungsstelle (CA) zu erstellen:

openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
Geben Sie die erforderlichen Informationen in die Eingabeaufforderungen ein.
Ihre CA wird von den normalen E-Mail-Clients nicht als vertrauenswürdig eingestuft. Sie müssen also Ihre CA auf Ihrem System installieren und ihr vertrauen.
Zum Beispiel im Schlüsselbund von Mac OS oder Thunderbird.

E-Mail-Zertifikatsanforderung erstellen

Dann habe ich eine Zertifikatsanforderung für meine Test-E-Mail-Adresse erstellt. Sie brauchen eine für jede Adresse, von der Sie senden möchten:

openssl genrsa -des3 -out test.key 4096
openssl req -new -key test.key -out test.csr
Geben Sie die erforderlichen Informationen in die Eingabeaufforderungen ein.

Signieren Sie die Zertifikatsanforderung

Ihre Zertifikatsanforderung muss von der soeben erstellten CA mit diesem Befehl signiert werden:

openssl x509 -req -days 365 -in test.csr -CA ca.crt -CAkey ca.key \ -set_serial 1 -out test.crt -setalias „Mein Test E-Mail Zertifikat“ \ -addtrust emailProtection \ -addreject clientAuth -addreject serverAuth -trustout
Dadurch wird die Datei „test.crt“ ausgegeben, die Ihr signiertes Zertifikat ist.

Erstellen Sie eine PCKS12-Datei

Wir verwenden eine .p12-Datei im PCKS12-Format, um das Zertifikat mit dem privaten Schlüssel auszutauschen. Diese können wir in Group-Office hochladen.

openssl pkcs12 -export -in test.crt -inkey test.key \ -out test.p12
Sie können nun „test.p12“ in Group-Office verwenden oder in anderer Software wie dem Apple-Schlüsselbund oder Thunderbird installieren.

Vertrauen in Ihre CA in Group-Office

Ihr Zertifikat ist selbstsigniert und wird nicht validiert, wenn Sie nicht angeben, dass Ihre Zertifizierungsstelle vertrauenswürdig ist. Sie können dies mit einer Konfigurationsoption in config.php tun:

$config[’smime_root_cert_location‘] = „/etc/groupoffice/ssl/ca.crt“;
Fügen Sie diese Option in /etc/groupoffice/config.php ein und legen Sie die ca.crt in /etc/groupoffice/ssl/ca.crt ab. Jetzt wird Group-Office Ihr Zertifikat validieren.

Folgen Sie unserer Dokumentation, wie Sie S/MIME in Ihrem Group-Office-Konto einrichten.