Verwendung eigener SSL Zertifikate: Unterschied zwischen den Versionen

[unmarkierte Version][gesichtete Version]
 
(23 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__
+
== Hintergrund ==
 +
Zum Sicherstellen von Authentizität und Sicherheit, verwendet MailStore Server TLS-Zertifikate für die bereitgestellten Dienste. Während der Installation ermöglicht MailStore Server daher
  
== Hintergrund ==
+
* das Erstellen eines selbst-signierten Zertifikats,
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.  
+
* die Verwendung eines vorhandenen Zertifikats,
 +
* oder das Beziehen eines Zertifikats von Let's Encrypt.
  
[[Datei:MScert.png|350px|center]]
+
Die Standardauswahl, das Erstellen eines selbst-signierten Zertifikats, wird oft für die Erstinstallation von MailStore Server verwendet, da es keine externen Abhängigkeiten mit sich bringt. Während dies für eine Testinstallation akzeptabel sein mag, ist es für den Produktiveinsatz nicht empfohlen, da selbst-signierten Zertifikaten von anderen Client-Computern nicht vertraut wird, aufgrund der fehlenden Beglaubigung durch eine vertrauenswürdigen Zertifizierungsstelle und Benutzer sich darüber hinaus an das Ignorieren von Zertifikatswarnungen gewöhnen könnten, was sie anfälliger für Man-in-the-middle-Angriffe macht.  
 
   
 
   
In Folge dessen kommt es beim Aufruf des MailStore Web Access über HTTPS (SSL) zu folgender Warnmeldung:
+
[[Datei:MScert.png|360px|center]]
 +
 
 +
In Folge dessen kommt es beim Aufruf des MailStore Web Access zu folgender oder ähnlicher Warnmeldung, wenn ein selbst-signiertes Zertifikat verwendet wird:
  
[[Datei:MSnotrust.png|550px|center]]
+
[[Datei:MSnotrust.png|360px|center]]
 
   
 
   
Neben der in diesem Artikel beschriebenen Möglichkeit der Verwendung offiziell signierte Zertifikate einer eigenen Unternehmens CA oder eines öffentlichen Zertifikatsanbieters (bsp. VeriSign, eTrust, etc.) gibt es auch die Alternative, auf den Clients das selbst signierte Zertifikat in den Container der Vertrauenswürdigen Stammzertifizierungsstellen zu installieren. Dieses Vorgehen ist im Artikel [[Verteilung eines selbstsignierten SSL-Zertifikats]] beschreiben.
+
Um diese Fehlermeldung zu eliminieren und damit die Sicherheit und den Benutzerkomfort zu erhöhen, muss MailStore für die Verwendung eines Zertifikats konfiguriert werden, welches von einer vertrauenswürdigen Zertifizierungsstelle unterschrieben wurde.
 +
 
 +
Das Folgende beschreibt das manuelle Beziehen und Installieren von Zertifikaten einer vertrauenswürdigen Zertifizierungsstelle. Eine Alternative zum Beziehen von Zertifikaten stellt möglicherweise die automatisierte Methode von Let's Enrypt dar. Weitere Details dazu finden Sie in [[Verwendung von Lets Encrypt Zertifikaten|Verwendung von Let's Encrypt Zertifikaten]]
  
Um MailStore Server für die Verwendung eines eigenes Zertifikats zu konfigurieren, gehen Sie wie im Folgenden beschrieben vor.
+
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|Verwenden des Zertifikats in MailStore]]
  
== Erstellen einer Zertifikatanforderung ==
+
== Voraussetzungen ==
 +
* Eine vertrauenswürdige [[wikipedia:Certificate_authority|Certificate Authority]]
 +
* ''certreq'' (ist in den meisten Windows Versionen standardmäßig verfügbar)
  
Zum Erstellen einer Zertifikatanforderung bzw. Certificate Signing Request (CSR) stehen Ihnen diverse Werkzeuge wie ''OpenSSL'', ''certreq'' und das ''MMC'' Snap-In ''Zertifikate'' zur Verfügung.
+
== 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 und dieses in den Windows Zertifikatspeicher importiert.
  
Im folgenden wird beschrieben, wie Sie mit Hilfe von ''certreq'' eine Zertifikatanforderung generieren und das daraus resultierende Zertifikat in den Windows Zertifikatspeicher laden können. ''certreq'' ist in den meisten Windows Versionen verfügbar.
+
=== Erstellen einer Zertifikatanforderung ===
 +
Im folgenden wird beschrieben, wie Sie eine Zertifikatanforderung mit Hilfe von ''certreq'' generieren.
  
 
* Melden Sie sich am MailStore Server Computer als Administrator an.
 
* Melden Sie sich am MailStore Server Computer als Administrator an.
* Erstellen Sie die Datei ''request.inf'' mit folgendem Inhalt:
+
* Erstellen Sie die Datei ''request.inf'' mit folgendem Inhalt, 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.
 +
 
 
<pre>
 
<pre>
 
;----------------- request.inf -----------------
 
;----------------- request.inf -----------------
Zeile 29: Zeile 40:
 
[NewRequest]
 
[NewRequest]
 
; replace Subject attributes in the line below with real values
 
; replace Subject attributes in the line below with real values
Subject = "CN=mailarchive.example.com, OU=Department, O=Organisation, L=Locality, S=State, C=Country"
+
Subject = "CN=mailstoreserver.example.com, OU=Department, O=Organisation, L=Locality, S=State, C=CountryCode"
 
KeySpec = 1
 
KeySpec = 1
 
KeyLength = 2048
 
KeyLength = 2048
 
Exportable = TRUE
 
Exportable = TRUE
FriendlyName = mailarchive.example.com
+
FriendlyName = mailstoreserver.example.com
 
MachineKeySet = TRUE
 
MachineKeySet = TRUE
 
SMIME = False
 
SMIME = False
Zeile 46: Zeile 57:
 
[EnhancedKeyUsageExtension]
 
[EnhancedKeyUsageExtension]
 
OID = 1.3.6.1.5.5.7.3.1 ; this is for Server Authentication
 
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&"
 
</pre>
 
</pre>
* Passen Sie ''Subject'' und ''FriendlyName'' Ihren Bedüfnissen an.
 
 
* Speichern Sie die Datei.
 
* 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.
 
* Öffnen Sie eine Kommandozeile als Administrator und navigieren Sie in das Verzeichnis, in das Sie die Datei ''request.inf'' abgelegt haben.
Zeile 53: Zeile 68:
 
  certreq -new request.inf request.csr
 
  certreq -new request.inf request.csr
  
== ''Optional:'' Subject Alternative Names (SAN) ==
+
=== Validieren der Zertifikatanforderung ===
 
+
Um die Zertifikatanforderung zu validieren, führen Sie den folgenden Befehl in der Kommandozeile aus:
Soll das Zertifikat für mehrere Hostnamen gültig sein, müssen sogenannte ''Subject Alternative Names'' in der Zertifikatanforderung enthalten sein. Fügen Sie die unten aufgeführte ''Extensions''-Sektion ans Ende der Datei ''request.inf'' an. Passen Sie die Hostnamen Ihrer Umgebung an, weitere Hostnamen können durch das Hinzufügen weiterer ''_continue_''-Zeilen hinzugefügt werden. Speichern Sie die Datei ab, und führen Sie den oben genannten Befehl zur Zertifikatanfoderungsgenerierung aus.
 
 
 
<pre>
 
[Extensions]
 
2.5.29.17 = "{text}"
 
_continue_ = "DNS=mailarchive.example.com&"
 
_continue_ = "DNS=archive.example.com&"
 
</pre>
 
 
 
 
 
<p class="msnote">'''Wichtiger Hinweis:''' Wenn ''Subject Alternative Names'' definiert werden, wird der ''Common Name'' (''CN'') in der ''Subject''-Zeile von Clients ignoriert und es wird ein Fehler geworfen, wenn der Hostname mit keinem SAN identisch ist. Daher müssen alle Hostnamen in der ''Extension'' definiert sein.</p>
 
 
 
== Validierung der Zertifikatanforderung ==
 
 
 
Um die Zertifikatanforderung zu validieren, führen Sie den folgenden Befehl in der Kommandzeile aus:
 
 
  certutil -dump request.csr
 
  certutil -dump request.csr
  
== Einreichen der Zertifikatanforderung ==
+
=== 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.  
 
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.  
  
<p class="msnote">'''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 der MMC durchgeführt werden.</p>
+
<p class="msnote">'''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.</p>
  
== ''Alternative 1:'' Importieren des Zertifikats mittels certreq ==
+
=== Importieren des Zertifikats ===
 
* Öffnen Sie eine Kommandozeile als Administrator und navigieren Sie in das Verzeichnis, in das Sie das Zertifikat abgelegt haben.
 
* Ö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.
+
* 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
 
  certreq -accept certificate.cer
* Ö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.
+
=== Verifizieren des Imports ===
 +
* Melden Sie sich am MailStore Server-Compute als Administrator an.
 +
* Öffnen Sie die ''Microsoft Management Console (MMC)''.
 +
* Fügen Sie das Zertifikate Snap-In wie folgt hinzu:
 +
** Klicken Sie auf ''Datei'' > ''Snap-In hinzufügen/entfernen...'' > ''Zertifikate'' > ''Hinzufügen >''.
 +
** Wählen Sie ''Computerkonto'' aus und klicken Sie auf ''Weiter >''.
 +
** Wählen Sie ''Lokaler Computer'' aus und klicken Sie auf ''Fertig stellen''.
 +
** Schließen Sie alle noch offenen Dialogfenster.
 +
* Klicken Sie auf ''Zertifikate (Lokaler Computer)'' > ''Eigene Zertifikate'' > ''Zertifikate''.
 +
* Doppel-klicken Sie auf das zuvor importierte Zertifikat.
 +
* Prüfen Sie, ob der private Schlüssel passen zum Zertifikat vorhanden ist:
  
 
: [[Datei:Private_key.png|center]]
 
: [[Datei:Private_key.png|center]]
  
== ''Alternative 2:'' Importieren des Zertifikats mittels MMC ==
+
==== Reparieren des Zertifikatspeichers ====
 
+
Es kann vorkommen, dass der passende private Schlüssel nicht gefunden werden kann, obwohl das Zertifikat erfolgreich in den korrekten Zertifikatsspeicher importiert wurde. Um den Zertifikatsspeicher zu reparieren, gehen Sie wie folgt vor:
Nachdem Sie von Ihrer Certificate Authority das signierte SSL-Zertifikat erhalten haben, können Sie es auch mit Hilfe des MMC Snap-Ins ''Zertifikate '' installieren.
 
 
* Melden Sie sich am Server als Administrator an.
 
* Klicken Sie ''Start | Ausführen''.
 
* Führen Sie den Befehl ''mmc'' aus.
 
* Wählen Sie nun ''Datei | Snap-In hinzufügen/entfernen | Hinzufügen | Zertifikate''.
 
* Wählen Sie in der nun folgenden Auswahl ''lokales Computerkonto'' und anschließend ''lokaler Computer''.
 
* Schließen Sie die Auswahl über ''Fertigstellen'' ab und schließen Sie die noch offenen Dialoge.
 
* Wählen Sie in der Management-Konsole ''Eigene Zertifikate | Zertifikate''.
 
* Klicken Sie mit der rechten Maustaste auf den Ordner ''Zertifikate'' und wählen Sie ''Alle Aufgaben | Importieren''.
 
* Folgen Sie den Anweisungen des Assistenten und wählen Sie die Datei aus, welche das Zertifikat und ggf. den privaten Schlüssel enthält.
 
* Wählen Sie auf der Seite ''Zertifikatsspeicher'' den Container ''Eigene Zertifikate'' aus und schließen Sie den Assistenten anschließend ab.
 
* Das Zertifikat wird nun im Container ''Eigene Zertifikate'' angezeigt.
 
* Zur Kontrolle öffnen Sie das Zertifikat über einen Doppelklick und vergewissern Sie sich, dass Sie über den privaten Schlüssel für das Zertifikat verfügen.
 
  
: [[Datei:Private_key.png|center]]
+
* Öffnen Sie eine PowerShell als Administrator und führen Sie folgenden Befehl aus:
 +
Get-ChildItem Cert:\LocalMachine\My | select Subject, Serialnumber, Thumbprint, HasPrivateKey
 +
* Identifizieren Sie anhand von ''Subject'', ''SerialNumber'' und ''Thumbprint'' das Zertifikat, welches Sie in MailStore verwenden wollen.
 +
* Reparieren Sie den entsprechenden Zertifikatspeicher indem Sie folgenden Befehl ausführen, wobei SerialNumber durch die SerialNumber des zu verwendenden Zertifikats zu ersetzen ist:
 +
certutil -repairstore my SerialNumber
  
== Das Zertifikat mit MailStore Server verwenden ==
+
=== Verwenden des Zertifikats in MailStore ===
* Öffnen Sie nun die MailStore Server Dienst-Konfiguration.  
+
* Öffnen Sie die MailStore Server Dienst-Konfiguration.  
* Wählen Sie den Punkt ''IP-Adressen und Ports''  
+
* Wählen Sie den Punkt ''Netzwerkeinstellungen''  
 
* Klicken Sie im entsprechenden Abschnitt auf die Schaltfläche rechts des Textfeldes ''Serverzertifikat'' und wählen Sie ''Auswählen aus dem Zertifikatsspeicher...'' aus.
 
* 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.
 
* 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.
 
* Bestätigen Sie die Eingaben und starten Sie abschließend den MailStore Server-Dienst neu.
  
== Anhang: Einen PFX-Container mittels OpenSSL erstellen ==
+
== Importieren eines vorhanden Zertifikats ==
Wenn die Zertifikatanforderung mit OpenSSL erstellt worden ist, wird der private Schlüssel nicht automatisch im Windows Zertifikatspeicher abgelegt, sondern existiert in der Regel als Datei im Dateisystem. Um Zertifikate in MailStore verwenden zu können, die mit OpenSSL erstellt worden sind, müssen die Zertifikate erst in einen PFX-Container umgewandelt 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.
 
  
* Kopieren Sie das Zertifikat, den privaten Schlüssel und die Zertifikate aus der Zertifikatkette in das OpenSSL-Verzeichnis.
+
Zertifikate werden zwischen Computern in der Regel mit Hilfe eines Personal Information Exchange (PFX/P12)-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.
 
* Ö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:
 
* 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
 
  openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
* Importieren Sie das Zertifikat durch Ausführen des folgenden Befehls:
+
 
certutil -importpfx certificate.pfx
+
=== Importieren eines PFX-Containers ===
 +
* Öffnen Sie die MailStore Server Dienst-Konfiguration.
 +
* Wählen Sie den Punkt ''Netzwerkeinstellungen''
 +
* 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.
 +
* Ist die PFX-Datei passwortgeschützt, werden Sie nun nach dem Passwort gefragt.
 +
* Bestätigen Sie die Eingaben und starten Sie abschließend den MailStore Server-Dienst neu.
  
 
== Weblinks ==
 
== Weblinks ==
Zeile 126: Zeile 141:
 
* [https://technet.microsoft.com/en-us/library/cc732443.aspx Microsoft Technet: Certutil]
 
* [https://technet.microsoft.com/en-us/library/cc732443.aspx Microsoft Technet: Certutil]
 
* [https://technet.microsoft.com/de-de/library/ff625722.aspx Microsoft Technet: How to Request a Certificate With a Custom Subject Alternative Name]
 
* [https://technet.microsoft.com/de-de/library/ff625722.aspx Microsoft Technet: How to Request a Certificate With a Custom Subject Alternative Name]
 +
* [https://www.libressl.org/ LibreSSL]
 
* [https://www.openssl.org/docs/apps/openssl.html OpenSSL Dokumentation]
 
* [https://www.openssl.org/docs/apps/openssl.html OpenSSL Dokumentation]
 +
  
 
[[de:Verwendung eigener SSL Zertifikate]]
 
[[de:Verwendung eigener SSL Zertifikate]]
 
[[en:Using_Your_Own_SSL_Certificate]]
 
[[en:Using_Your_Own_SSL_Certificate]]

Aktuelle Version vom 17. Januar 2020, 09:28 Uhr

Hintergrund

Zum Sicherstellen von Authentizität und Sicherheit, verwendet MailStore Server TLS-Zertifikate für die bereitgestellten Dienste. Während der Installation ermöglicht MailStore Server daher

  • das Erstellen eines selbst-signierten Zertifikats,
  • die Verwendung eines vorhandenen Zertifikats,
  • oder das Beziehen eines Zertifikats von Let's Encrypt.

Die Standardauswahl, das Erstellen eines selbst-signierten Zertifikats, wird oft für die Erstinstallation von MailStore Server verwendet, da es keine externen Abhängigkeiten mit sich bringt. Während dies für eine Testinstallation akzeptabel sein mag, ist es für den Produktiveinsatz nicht empfohlen, da selbst-signierten Zertifikaten von anderen Client-Computern nicht vertraut wird, aufgrund der fehlenden Beglaubigung durch eine vertrauenswürdigen Zertifizierungsstelle und Benutzer sich darüber hinaus an das Ignorieren von Zertifikatswarnungen gewöhnen könnten, was sie anfälliger für Man-in-the-middle-Angriffe macht.

MScert.png

In Folge dessen kommt es beim Aufruf des MailStore Web Access zu folgender oder ähnlicher Warnmeldung, wenn ein selbst-signiertes Zertifikat verwendet wird:

MSnotrust.png

Um diese Fehlermeldung zu eliminieren und damit die Sicherheit und den Benutzerkomfort zu erhöhen, muss MailStore für die Verwendung eines Zertifikats konfiguriert werden, welches von einer vertrauenswürdigen Zertifizierungsstelle unterschrieben wurde.

Das Folgende beschreibt das manuelle Beziehen und Installieren von Zertifikaten einer vertrauenswürdigen Zertifizierungsstelle. Eine Alternative zum Beziehen von Zertifikaten stellt möglicherweise die automatisierte Methode von Let's Enrypt dar. Weitere Details dazu finden Sie in Verwendung von Let's Encrypt Zertifikaten

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

Voraussetzungen

  • Eine vertrauenswürdige Certificate Authority
  • certreq (ist in den meisten Windows Versionen standardmäßig verfügbar)

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 und dieses in den Windows Zertifikatspeicher importiert.

Erstellen einer Zertifikatanforderung

Im folgenden wird beschrieben, wie Sie eine Zertifikatanforderung mit Hilfe von certreq generieren.

  • Melden Sie sich am MailStore Server Computer als Administrator an.
  • Erstellen Sie die Datei request.inf mit folgendem Inhalt, 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.
;----------------- 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=CountryCode"
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&"
  • 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

  • Melden Sie sich am MailStore Server-Compute als Administrator an.
  • Öffnen Sie die Microsoft Management Console (MMC).
  • Fügen Sie das Zertifikate Snap-In wie folgt hinzu:
    • Klicken Sie auf Datei > Snap-In hinzufügen/entfernen... > Zertifikate > Hinzufügen >.
    • Wählen Sie Computerkonto aus und klicken Sie auf Weiter >.
    • Wählen Sie Lokaler Computer aus und klicken Sie auf Fertig stellen.
    • Schließen Sie alle noch offenen Dialogfenster.
  • Klicken Sie auf Zertifikate (Lokaler Computer) > Eigene Zertifikate > Zertifikate.
  • Doppel-klicken Sie auf das zuvor importierte Zertifikat.
  • Prüfen Sie, ob der private Schlüssel passen zum Zertifikat vorhanden ist:
Private key.png

Reparieren des Zertifikatspeichers

Es kann vorkommen, dass der passende private Schlüssel nicht gefunden werden kann, obwohl das Zertifikat erfolgreich in den korrekten Zertifikatsspeicher importiert wurde. Um den Zertifikatsspeicher zu reparieren, gehen Sie wie folgt vor:

  • Öffnen Sie eine PowerShell als Administrator und führen Sie folgenden Befehl aus:
Get-ChildItem Cert:\LocalMachine\My | select Subject, Serialnumber, Thumbprint, HasPrivateKey
  • Identifizieren Sie anhand von Subject, SerialNumber und Thumbprint das Zertifikat, welches Sie in MailStore verwenden wollen.
  • Reparieren Sie den entsprechenden Zertifikatspeicher indem Sie folgenden Befehl ausführen, wobei SerialNumber durch die SerialNumber des zu verwendenden Zertifikats zu ersetzen ist:
certutil -repairstore my SerialNumber

Verwenden des Zertifikats in MailStore

  • Öffnen Sie die MailStore Server Dienst-Konfiguration.
  • Wählen Sie den Punkt Netzwerkeinstellungen
  • 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/P12)-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 eines PFX-Containers

  • Öffnen Sie die MailStore Server Dienst-Konfiguration.
  • Wählen Sie den Punkt Netzwerkeinstellungen
  • 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.
  • Ist die PFX-Datei passwortgeschützt, werden Sie nun nach dem Passwort gefragt.
  • Bestätigen Sie die Eingaben und starten Sie abschließend den MailStore Server-Dienst neu.

Weblinks