Schlagwort-Archive: SSL Zertifikat

Ein digitales Zertifikat ist ein digitaler Datensatz, der bestimmte Eigenschaften von Personen oder Objekten bestätigt und dessen Authentizität und Integrität durch kryptografische Verfahren geprüft werden kann.

Windows 10 MMC Konsole

Zertifikate Verwaltung mit der Windows MMC-Konsole

Dieses Tutorial beschreibt die Verwaltung von Zertifikate auf Microsoft Corporation 200,39 -2,52 -1,24% Windows 10, mit der Windows Management Console (MMC).

So wird’s gemacht

Die MMC-Konsole wird mit den Tasten Windows + R und Eingabe von mmc und OK geöffnet.

run

Der Zertifikatsspeicher wird in der MMC-Konsole1 mit Konsolenstamm geöffnet.

Im Menü auf Datei und Snap-In hinzufügen/entfernen.. gehen.

Im Fenster Verfügbare Snap-In steht unten das Snap-In Zertifikate zur Auswahl, dieses selektieren und den Button Hinzufügen klicken.

Mit OK bestätigen und Computerkonto wählen. Mit Eigenes Benutzerkonto werden nur Zertifikate des angemeldeten Benutzer verwaltet.

Lokalen Computer wählen.

Konsole1 – Konsolenstamm wird geöffnet. Im Ordner Eigene Zertifikate sind die eigenen ausgestellten Zertifikate gespeichert.

Im Ordner Vertrauenswürdige Stammzertifizierungsstellen sind die CA Zertifikate gespeichert.

Mit Rechtsklick über einem Zertifikat öffnet sich das Kontextmenü, unter Alle Aufgaben steht Export zur Verfügung. Auch können über Aktion oder das Kontextmenü Zertifikate importiert werden.

Bei beenden der Konsole wird man gefragt ob Konsole1 gespeichert werden soll, hier kann ein Name eingegeben werden, beispielsweise „Computer Zertifikate“, mit Nein beendet man die MMC-Konsole wieder.

Das speichern der Konsole1 bedeutet nur das man beim nächsten öffnen der Zertifikate Verwaltung, das Snap-In nicht wieder hinzufügen muss.

let’s encrypt zertifikat unter windows

Let’s Encrypt Zertifikate erstellen für IIS Websites und Exchange Server

HTTPS verschlüsselte Webseiten sind der neue Standard, und bei Kontaktformularen sogar Pflicht. Seit 2017 markiert Google unverschlüsselte Seiten als unsicher, zudem bevorzugen Suchmaschinen HTTPS-Webseiten für tendenziell besseres Ranking. Voraussetzung für die Einrichtung einer sicheren HTTPS-Verbindung ist ein vertrauenswürdiges Zertifikat, dieses von Zertifizierungsstellen (Certificate Authority, CA) ausgestellt werden. Die verschlüsselte Datenübertragung zwischen Client und Server erfolgt dann anschliessend per SSL/TLS. In der Regel sind diese Zertifikate nicht kostenlos erhältlich – doch es gibt kostenlose Alternativen wie die Let’s Encrypt Initiative. In dieser Anleitung wird ein SSL-Zertifikat mit Let’s Encrypt selbst erstellt.

Was ist Let’s Encrypt?

Die Certificate Authority (CA) Let’s Enrypt bietet seit Ende 2015 kostenlos und automatisiert SSL-Zertifikate an. Das erklärte Ziel: die Schaffung eines einfachen, kostenlosen und verschlüsselten Internets.

Let’s Encrypt stellt noch kein offizielles Tool zur Verfügung, um die ACME Challenge wie für Linux Server, auch auf einem Windows Server durchzuführen. Da es jedoch ein offenes Protokoll ist, gibt es bereits diverse Tools, die alle auf den ACME Dienst von Let’s Encrypt zurückgreifen. Zu empfehlen ist hier Certify the web von Webprofusion. Zum aktuellen Zeitpunkt ist Certify the web mit der Version 4.1.6 für eine begrenzte Anzahl Zertifikate kostenlos erhältlich. Es ist das bisher einzige Tool mit GUI und bietet Premium-Funktionen wie die automatisierte Verlängerung der Zertifikate und Multidomain Zertifikate.

Certify the web Installation

Als Voraussetzung gilt, dass der Windows Server auf dem neusten Stand ist und IIS bereits installiert ist, die Webseite auf dem Webserver muss über Port 80 erreichbar sein. Außerdem muss man eine Domain besitzen, und Zugriff haben auf deren DNS Einträge. Man fügt in der DNS-Zone der Domain, einen A-Record auf die IPv4 Adresse und einen AAAA-Record auf die IPv6 Adresse des Webservers ein.

Das kostenlose Tool kann hier heruntergeladen werden, es wird auf dem Server installiert, auf diesem IIS ausgeführt wird. Beim ersten start wird man begrüsst mit der Bitte, einen neuen Kontakt zu registrieren, über die E-Mail Adresse die man registriert, lässt Let’s Encrypt einem auf dem laufenden, und erinnert uns über die Laufzeit des Zertifikats.

Im IIS-Manager (inetmgr) wird als Bindung der Hostname mit dem Domainname eintragen, zum Beispiel web.shop.net.

Bindungen bearbeiten…

Unter Sites über der entsprechenden Site mit Rechtsklick das Kontextmenü öffnen und auf Bindungen bearbeiten gehen.

Sitebindung und Let’s Encrypt Zertifikat

Als Hostname wird hier web.shop.net eingetragen.

Jetzt den “Certify the web” Manger starten, um für die Domain ein CA Zertifikat anfordern zu lassen.

Man Klickt auf New Certificate um eine neues Zertifikat ausstellen zu lassen, nach dem man im Feld Add domains to certificate den Domainname einträgt und auf den Button ADD DOMAIN klickt.

Mit klick auf Request Certificate wird das Zertifikat angefordert und automatisch installiert.

ACME auf Exchange Server

Zertifikat für IIS und Exchange mit ACME Lets Encrypt ausstellen. Die CA von Let’s Encrypt stellt Zertifikate auch für SAN (Subject Alternative Name) Zertifikate aus, Wildcard-Zertifikate werden seit Anfang 2018 unterstützt.

Für öffentlich zugäng­liche Web­sites sind SSL-Verbin­dungen mittler­weile Standard, und selbiges sollte auch für Exchange gelten. Let’s Encrypt betreibt eine freie CA, die Zerti­fikate nicht nur kosten­los, sondern auch weit­gehend automa­tisiert ausstellt. Diese Anleitung zeigt das Vorgehen für IIS und Exchange.

Zur Verifikation, ob der Antragsteller jener ist, der die Domäne kontrolliert, für die er ein Zertifikat beanträgt, setzt Let’s Encrypt das ACME-Protokoll (Automatic Certificate Management Environment) ein.

Bei jeder Methode die zur Verifizierung der Domain verwendet wird, muss der FQDN über ein öffentlichen DNS-Server auflösbar und der Host auf Port 80 aus dem Internet erreichbar sein.

Das gilt auch, wenn man sich für die Verifizierung mittels Datei entscheidet, die der Client auf den lokalen Rechner herunterlädt. Diese muss dann auf den Host kopiert werden und dort für Let’s Encrypt zugänglich sein. Damit der ACME-Client die Hostnamen aus der IIS-Konfiguration ermitteln kann, muss im IIS-Manager sichergestellt werden, dass HTTP bei den gewünschten Sites an die jeweiligen FQDN gebunden ist.

Zertifikat anfordern

Das interaktive Tool win-acme kann hier heruntergeladen werden, nach dem entpacken wird in einem als Administrator geöffneten Comand Prompt wacs.exe ausgeführt.

Wir wählen hier also M Create new certificate (full options) für ein SAN Certificate. Seit Exchange 2013 werden zwei IIS-Sites verwendet, die ein Zertifikat benötigen. Danach wählen wir als Methode die Option 3 „[http-01] Create temporary application in IIS“.

Nach erfolgreicher Ausstellung des Zertifikats legt wacs.exe das Zertifikat unter C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org ab.

Dienste IIS SMTP IMAP zuweisen

Exchange hat an dieser Stelle noch nicht für jeden Dienst ein Zertifikat. Das kann man manuell in der ECP-Konsole erledigen, oder aber das hierfür bereitgestellte Script ImportExchange.ps1 werwenden.

Interactive ausführung in Exchange Command Prompt (wacs.exe)

Es muss sichergestellt sein, das aufgrund der 90 Tage begrenzten Gültigkeit des Zertifikats, das dessen Erneuerung nicht verpasst wird. Am besten erstellt man hierfür ein geplanten Task. Dieser sollte nicht nur den ACME-Client mit dem renew-Parameter enthalten, sondern auch die zuweisung der Dienste.

Postfix mit SASL-Authentifizierung verwenden

SMTP-Server müssen entscheiden, ob ein SMTP-Client autorisiert ist E-Mails zu versenden, für die der Server selbst zuständig ist.

Simple Authentication and Security Layer (SASL) Integration Postfix


Diese Anleitung beschreibt, wie man ein MTA (Mail Transport Agent) Postfix unter CentOS 7 mit CyrusSASL zur SMTP-Authentifizierung (SMTP-Auth) erweitert. Danach können Clients E-Mails mittels SMTP-Auth versenden. Diese Anleitung ist geprüft unter CentOS Linux release 7.7.1908 (Core), mit Postfix v2.10.1 und Cyrus-SASL 2.1.26. Es wird davon ausgegangen das Postfix bereits konfiguriert ist und TLS (Transport Layer Security) implementiert ist.

Postfix implementiert die SASL Library nicht selbst, sondern verwendet vorhandene Implementierungen als Bausteine. Dies bedeutet, dass einige SASL-bezogene Konfigurationsdateien zu Postfix gehören, während andere Konfigurationsdateien zu der spezifischen SASL-Implementierung gehören, die Postfix verwenden wird.

Installieren von Cyrus-SASL

Als root die Pakete mit folgendem Command installieren:

Die einzelnen SASL-Mechanismen werden als RPMs installiert.

Es folgt die Einbindung für Postfix, hierzu die modifikation in der Datei /etc/postfix/master.cf vornehmen:

Damit Postfix mit SASL funktioniert, darf Postfix nicht im chroot-Verzeichnis laufen, Zeile smtps bei Position 5 (n).

SMTP-Auth für lokale Benutzer konfigurieren, wir editieren die Postfix Datei /etc/postfix/main.cf:

Die Konfiguration von Cyrus-SASL erfolgt durch zwei Dateien. Die erste Datei /etc/sysconfig/saslauthd kann übernommen werden:

Die SASL-Mechanismen PLAIN und LOGIN, CRAM-MD5 und DIGEST-MD5 kommen oft zum Einsatz, hierfür ist die Konfigurationsdatei /etc/sasl2/smtpd.conf zuständig, die bereitstellung wurde ebenfalls bei der Installation durchgeführt:

Nun Cyrus-SASL Library Daemon starten und den systemd autostart aktivieren, anschliessend Postfix re-starten:

Der SMTP-Submission Support auf Port 587 ist nun aktiviert, überprüfen lässt sich dies mit folgendem Kommando:

Zur Authentifizierung am SMTP-Gateway wird nun ein Benutzer erstellt, dieser E-Mails über den MTA versenden soll:

  Eine lokale UserID ist für unsere Anforderung hier ausreichend, Cyrus-SASL unterstützt weiter LDAP und SQL, um mit beispielweise Kopano oder einem AD Verzeichnisdienst zu interagieren.

Cyrus-SASL SMTP-Auth Testen

Welche Mechanismen zur Authentifizierung innerhalb von STARTTLS unterstützt werden, kann mit OpenSSL überprüft werden:

In der Ausgabe von openssl ein EHLO übergeben:

Ist OpenSSL nicht vorliegend, kann dazu auch Telnet genutzt werden, es wird zum Gateway mail.relayhost.net über Port 587 eine Verbindnung hergestellt, dazu kann auch PuTTY oder KiTTY verwendet werden.

Nun möchten wir uns beim Gateway (MTA) Authentifizieren. Der Benutzername und das Passwort muss im base64-codierten Format an das SMTP-Gateway übertragen werden, Hierzu gibt man die folgenden Befehlszeilen ein, um die base64-Codierung für den Benutzername und das Passwort zu erhalten.

Die SASL SMTP-Auth Konfiguration und Authentifizierung überprüft man wie folgt mit ausführen der folgenden Zeilen im Terminal, nach Eingabe von AUTH LOGIN der mit Base64 codierte Benutzername und das Passwort einfügen.

Die Ausgabe SMTP-Auth von Postfix mit Cyrus-SASL.

Die oben kodierten Credentials bei den 334 Prompts einfügen, hier bei Zeile 24 als userxy und bei Zeile 26 unser password.

  Ein 250 STARTTLS in der Ausgabe zeigt die Voraussetzungen, das Klartext-Benutzernamen mit Passwort durch STARTTLS geschützt an das SMTP-Gateway übermittelt werden.

Eine weitere einfache Möglichkeit gibt es mit SMTPConsole ein SMTP-Gateway zu testen.

SMTPConsole
SMTPConsole