Verwendung eigener SSL Zertifikate

Hintergrund

Während der Installation von MailStore Server wird ein SSL-Zertifikat generiert, welches von allen MailStore Server Komponenten verwendet wird, wenn eine verschlüsselte Verbindung aufgebaut werden soll. Da das Zertifikat auf den Servernamen MailStoreServer ausgestellt ist und zudem nicht von einer vertrauenswürdigen Zertifizierungsstelle (CA) stammt, wird diesem Clientseitig nicht vertraut.

MScert.png

In Folge dessen kommt es beim Aufruf des MailStore Web Access über HTTPS (SSL) zu folgender Warnmeldung:

MSnotrust.png

Um diese Fehlermeldung zu eliminieren und damit die Sicherheit und den Benutzerkomfort zu erhöhen, muss MailStore für die Verwendung eines eigenes Zertifikats konfiguriert werden.

Befindet sich im Zertifikatsspeicher Eigene Zertifikate des Computerkontos bereits ein Zertifikat, welches Sie verwenden möchten, folgenden Sie den Anweisungen im Abschnitt Verwenden des Zertifikats in MailStore

Erstellen eines neuen Zertifikats

Sofern für den DNS-Hostnamen über den Sie MailStore Server ansprechen wollen noch kein eigenes Zertifikat existiert, beschreibt das folgende Vorgehen, wie man ein neues Zertifikat erstellt.

Erstellen einer Zertifikatanforderung

Im folgenden wird beschrieben, wie Sie eine Zertifikatanforderung generieren und das daraus resultierende Zertifikat in den Windows Zertifikatspeicher laden können. certreq ist in den meisten Windows Versionen standardmäßig verfügbar.

  • Melden Sie sich am MailStore Server Computer als Administrator an.
  • Erstellen Sie die Datei request.inf mit folgendem Inhalt:
;----------------- request.inf -----------------
[Version]
Signature="$Windows NT$"

[NewRequest]
; replace Subject attributes in the line below with real values
Subject = "CN=mailstoreserver.example.com, OU=Department, O=Organisation, L=Locality, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
FriendlyName = mailstoreserver.example.com
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
 
[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1 ; this is for Server Authentication

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=*.example.com&"
_continue_ = "DNS=mailstoreserver.example.com&"
_continue_ = "DNS=mailstoreserver&"
  • Passen Sie Subject und FriendlyName an Ihren Bedürfnissen an.
  • Passen Sie die Subject Alternative Names (SAN) im Abschnitt [Extensions] ebenso an. Beachten Sie, dass der Common Name (CN) im Subject irrelevant für die Verifikation durch die Clients ist und alle Hostnamen in den SANs anzugeben sind. Weitere Hostnamen können durch das Hinzufügen weiterer _continue_-Zeilen hinzugefügt werden.
  • Speichern Sie die Datei.
  • Öffnen Sie eine Kommandozeile als Administrator und navigieren Sie in das Verzeichnis, in das Sie die Datei request.inf abgelegt haben.
  • Erstellen Sie die Zertifikatanforderung durch das Ausführen des folgenden Befehls:
certreq -new request.inf request.csr

Validieren der Zertifikatanforderung

Um die Zertifikatanforderung zu validieren, führen Sie den folgenden Befehl in der Kommandozeile aus:

certutil -dump request.csr

Einreichen der Zertifikatanforderung

Reichen Sie die Zertifikatanforderung bei Ihrer Certificate Authority (CA) ein. Üblicherweise wird die Zertifikatanforderung über eine Webseite zur CA hochgeladen. Wenn Sie von der CA nach der Plattform gefragt werden, für die das Zertifikat verwendet werden soll, wählen Sie IIS 7 oder Keine der Aufgelisteten. Sie erhalten ein wenig später das unterschriebene Zertifikat zurück.

Hinweis: Viele CAs unterschreiben die Zertifikatanforderungen von einer Zwischenstelle. Das Zertifikat dieser Zwischenstelle wird in der Regel mit dem eigentlichen Zertifikat bereitgestellt und muss vor dem Import des Zertifikats in den Zertifikatspeicher importiert werden. Dies kann üblicherweise mittels des MMC Snap-In Zertifikate durchgeführt werden. Folgen Sie dazu ggf. den Anweisungen Ihrer CA.

Importieren des Zertifikats

  • Öffnen Sie eine Kommandozeile als Administrator und navigieren Sie in das Verzeichnis, in das Sie das Zertifikat abgelegt haben.
  • Führen Sie den folgenden Befehl aus, um das Zertifikat in den Zertifikatspeicher des Computerkontos zu importieren. Passen Sie den Dateinamen entsprechend an.
certreq -accept certificate.cer

Verifizieren des Imports

  • Öffnen Sie das MMC Snap-In Zertifikate und navigieren Sie zu den Eigenen Zertifikaten des Computerkontos.
  • Prüfen Sie, ob auf den privaten Schlüssel des Zertifikats zugegriffen werden kann. Dies ist an dem kleinen Schlüsselsymbol am Symbol des Zertifikats sichtbar. Außerdem wird es nach einem Doppelklick auf das Zertifikat im Allgemein-Reiter erwähnt.
Private key.png

Ist der private Schlüssel nicht verfügbar, so kann der Zertifikatspeicher repariert werden. Zuerst müssen Sie die Subjects, Seriennummern und Fingerabdrücke der installierten Zertifikate erhalten, um herauszufinden, welches Zertifikat von MailStore verwendet wird. Öffnen Sie eine PowerShell als Administrator und lassen Sie sich die Zertifikate mit folgendem PowerShell Befehl anzeigen:

Get-ChildItem Cert:\LocalMachine\My | select Subject, Serialnumber, Thumbprint, HasPrivateKey

Mit dem folgenden Befehl lässt sich der Zertifikatsspeicher reparieren, wobei "SerialNumber" die Seriennumer des betroffenen Zertifikats ist.

certutil -repairstore my SerialNumber

Verwenden des Zertifikats in MailStore

  • Öffnen Sie die MailStore Server Dienst-Konfiguration.
  • Wählen Sie den Punkt IP-Adressen und Ports
  • Klicken Sie im entsprechenden Abschnitt auf die Schaltfläche rechts des Textfeldes Serverzertifikat und wählen Sie Auswählen aus dem Zertifikatsspeicher... aus.
  • Wählen Sie aus dem Zertifikatsspeicher das neue Zertifikat aus.
  • Bestätigen Sie die Eingaben und starten Sie abschließend den MailStore Server-Dienst neu.

Importieren eines vorhanden Zertifikats

Zertifikate werden zwischen Computern in der Regel mit Hilfe eines Personal Information Exchange (PFX)-Containers ausgetauscht. Dieser kann z.B. mit Hilfe der Export-Funktion des MMC Snap-In Zertifikate erstellt werden.

Optional: Erstellen eines PFX-Containers mit OpenSSL/LibreSSL

Wurde die ursprüngliche Zertifikatsanforderung nicht mit Hilfe von Windows-eigenen Werkzeugen oder gar auf einem nicht-Windows System erstellt, befindet sich sehr wahrscheinlich weder der private Schlüssel noch das Zertifikat im Windows Zertifikatspeicher des MailStore Server-Computers sondern als Dateien im Dateisystem.

In diesem Fall muss zunächst ein Personal Information Exchange-Container (PFX) erstellt werden. Dieser Container enthält das Zertifikat, den privaten Schlüssel und die Zertifikate aus der Zertifikatkette. Der PFX-Container kann dann in den Windows Zertifikatspeicher importiert werden.

Die folgenden Schritte zum konvertieren der Zertifikatsdateien in einem PFX-Container können mit OpenSSL bzw. LibreSSL durchgeführt werden:

  • Kopieren Sie das Zertifikat, den privaten Schlüssel und die Zertifikate aus der Zertifikatkette in das OpenSSL- bzw. LibreSSL-Verzeichnis.
  • Öffnen Sie eine Kommandozeile als Administrator und navigieren Sie in dieses Verzeichnis.
  • Führen Sie den folgenden Befehl aus, passen Sie die Dateinamen entsprechend an:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Importieren des PFX-Containers

  • Öffnen Sie die MailStore Server Dienst-Konfiguration.
  • Wählen Sie den Punkt IP-Adressen und Ports
  • Klicken Sie im entsprechenden Abschnitt auf die Schaltfläche rechts des Textfeldes Serverzertifikat und wählen Sie Aus Datei importieren... aus.
  • Wählen Sie die PFX-Datei aus.
  • Bestätigen Sie die Eingaben und starten Sie abschließend den MailStore Server-Dienst neu.

Weblinks