Verwendung eigener SSL Zertifikate: Unterschied zwischen den Versionen

[gesichtete Version][gesichtete Version]
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 14: Zeile 14:
 
Um MailStore Server für die Verwendung eines eigenes Zertifikats zu konfigurieren, gehen Sie wie im Folgenden beschrieben vor.
 
Um MailStore Server für die Verwendung eines eigenes Zertifikats zu konfigurieren, gehen Sie wie im Folgenden beschrieben vor.
  
== Erstellen einer Zertifikatsanforderung ==
+
== Erstellen einer Zertifikatanforderung ==
Zum Erstellen einer Zertifikatsanforderung bzw. Certificate Signing Request (CSR) stehen Ihnen diverse Werkzeuge zur Verfügung. Bitte haben Sie Verständnis dafür, dass wir auf deren Benutzung hier nicht weiter eingehen können.
 
  
Zu den verbreitetsten Programmen zur SSL-Zertifikatsverwaltung gehören:
+
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.
  
* Certificates MMC snap-in
+
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.
* certreq.exe
 
* openssl.exe
 
  
Mit Hilfe dieser Programme wird zunächst ein privater Schluessel und anschließend eine Zertifikatsanforderung generiert. Die Zertifikatsanforderung, niemals aber der private Schluessel, muss an die Certificate Authority übertragen werden. Nach der Signierung der Zertifikatsanforderung durch die Certificate Authority erhalten Sie das daraus resultierende Zertifikat von dieser zurück.
+
* Melden Sie sich am MailStore Server Computer als Administrator an.
 +
* Erstellen Sie die Datei ''request.inf'' mit folgendem Inhalt:
 +
<pre>
 +
;----------------- request.inf -----------------
 +
[Version]
 +
Signature="$Windows NT$"
  
Bitte beachten Sie, dass der private Schlüssel mit dem die Zertifikatsanforderung erstellt wurde im selben Zertifikatspeicher liegen muss, wie später das Zertifikat. In der Regel ist dies ''Zertifikate (Lokaler Computer) > Eigene Zertifikate > Zertifikate''.
+
[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
 +
</pre>
 +
* Passen Sie ''Subject'' und ''FriendlyName'' Ihren Bedüfnissen an.
 +
* 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
 +
 
 +
=== ''Optional:'' Subject Alternative Names (SAN) ===
 +
 
 +
Soll das Zertifikat für mehrere Hostnamen gültig sein, müssen sogenannte ''alternative Antragstellernamen'' (''Subject Alternative Names''/SAN) 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=mailstoreserver.example.com&"
 +
_continue_ = "DNS=mailstoreserver&"
 +
</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 möglichen 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
 +
 
 +
== 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.
 +
 
 +
<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>
  
== Installieren des Zertifikats ==
+
== ''Alternative 1:'' Importieren des Zertifikats mittels MMC ==
Nachdem Sie von Ihrer Certificate Authority das signierte SSL-Zertifikat erhalten haben, können Sie es mit Hilfe des Zertifikate MMC Snap-Ins installieren.
 
 
   
 
   
 
* Melden Sie sich am Server als Administrator an.
 
* Melden Sie sich am Server als Administrator an.
Zeile 42: Zeile 91:
 
* Das Zertifikat wird nun im Container ''Eigene Zertifikate'' angezeigt.
 
* 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.
 
* 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]]
 +
 +
== ''Alternative 2:'' Importieren des Zertifikats mittels certreq ==
 +
* Ö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
 +
* Ö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.
  
 
: [[Datei:Private_key.png|center]]
 
: [[Datei:Private_key.png|center]]
Zeile 48: Zeile 106:
 
* Öffnen Sie nun die MailStore Server Dienst-Konfiguration.  
 
* Öffnen Sie nun die MailStore Server Dienst-Konfiguration.  
 
* Wählen Sie den Punkt ''IP-Adressen und Ports''  
 
* 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 Zertifikatsspecicher...'' 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 ==
 +
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.
 +
* Ö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 Sie das Zertifikat durch Ausführen des folgenden Befehls:
 +
certutil -importpfx certificate.pfx
 +
 +
== Weblinks ==
 +
* [https://technet.microsoft.com/en-us/library/dn296456.aspx Microsoft Technet: Certreq]
 +
* [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://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]]

Version vom 22. Februar 2016, 15:09 Uhr


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

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 MailStore Server für die Verwendung eines eigenes Zertifikats zu konfigurieren, gehen Sie wie im Folgenden beschrieben vor.

Erstellen einer Zertifikatanforderung

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.

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.

  • 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
  • Passen Sie Subject und FriendlyName Ihren Bedüfnissen an.
  • 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

Optional: Subject Alternative Names (SAN)

Soll das Zertifikat für mehrere Hostnamen gültig sein, müssen sogenannte alternative Antragstellernamen (Subject Alternative Names/SAN) 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.

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=mailstoreserver.example.com&"
_continue_ = "DNS=mailstoreserver&"


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 möglichen Hostnamen in der Extension definiert sein.

Validierung der Zertifikatanforderung

Um die Zertifikatanforderung zu validieren, führen Sie den folgenden Befehl in der Kommandzeile 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 der MMC durchgeführt werden.

Alternative 1: Importieren des Zertifikats mittels MMC

  • 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.
Private key.png

Alternative 2: Importieren des Zertifikats mittels certreq

  • Ö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
  • Ö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

Das Zertifikat mit MailStore Server verwenden

  • Öffnen Sie nun 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.

Anhang: Einen PFX-Container mittels OpenSSL erstellen

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.
  • Ö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 Sie das Zertifikat durch Ausführen des folgenden Befehls:
certutil -importpfx certificate.pfx

Weblinks