Zertifikate für Webserver erstellen und anwenden
Unser Ziel ist es, Zertifikate für firmeninterne Web-Dienste zu erstellen.
In unserem Firmennetz betreiben wir eine Domäne: firma.lan, Ein interner DNS-Server ist auch vorhanden.
Auf einem Linux-Server installieren wir Apache2 und konfigurieren wir ihn für die WEB-Dienste.
Sollten wir vorhaben, mehrere interne Web-Server zu betreiben, könnten wir für die Erstellung der Zertifikate einen von denen verwenden. Zertifikate für bestimmte interne Domains werden auf dem sogenannten Master Server erstellt und signiert, danach werden die Zertifikate auf die entsprechende Server kopiert. Als Beispiel erstellen wir ein Zertifikat für die Domain mydomain1.firma.lan.
# cd /etc/apache2/cert
Zuerst erstellen wir ein CA Zertifikat (Certificate Authority). Das Zertifikat wird unter dem Dateinamen myCA.crt gespeichert. Das ist unseres Stammzertifikat.
Mit diesem Zertifikat werden alle ausgestellte Zertifikate bestätigt. Wir sollten uns auf jeden Fall das Passwort gut merken. Das Passwort wird bei der Signierung der Serverzertifikate gebraucht.
Mit dem folgenden Befehl wird zuerst ein Key erstellt.
Im nächsten Schritt wird dann das eigentliche Zertifikat für unsere CA erstellt, gültig für 10 Jahre.
Hier sollten wir ein paar Daten eintragen.
Als Beispiel: das sind meine Daten.
State or Province Name (full name) [Some-State]:Bayern
Locality Name (eg, city) []:Stein
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MBS-IT
Organizational Unit Name (eg, section) []:MBS-IT-Security
Common Name (e.g. server FQDN or YOUR name) []:MBS
Email Address []:admin@mydomain1.firma.lan
Zuerst wird ein privater Key erstellt
Hier sollten wir auch ein paar Daten eintragen. Das sind z.B. meine Daten. Unter Common Name bitte den Domainnamen eintragen. Unter 'extra' attributes braucht man nichts einzutragen, einfach mit der Enter-Taste weiter.
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bayern
Locality Name (eg, city) []:Stein
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MBS-IT
Organizational Unit Name (eg, section) []:MBS-IT-Security
Common Name (e.g. server FQDN or YOUR name) []:mydomain1.firma.lan
Email Address []:admin@mydomain1.firma.lan
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
In der Datei müssen wir nur die DNS-Namen anpassen.
Der Inhalt der Datei.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = mydomain1
DNS.2 = mydomain1.firma.lan
Virtual Host ist es beschrieben
So wird es manuell gemacht. Bei Windows wird zuerst die Datei myCA.crt von dem Linuxserver auf den Windows-Client übertragen.
Danach starten wir in CMD-Fenster und die entsprechende App C:\>certlm um das Zertifikat zu importieren.
Danach nach dem Aufruf der Webseite sollte keine Warnung mehr kommen.
# update-ca-certificates
Zertifikate verwalten
Wenn ein Admin ein Zertifikat braucht, sollte CSR Zertifizierungsanforderung erstellen. Nach Erstellung der CSR-Datei wird die Datei an den Admin der Zertifizierungsstelle gesendet. Der Admin erstellt dann das gewünschte Zertifikat, wie am Anfang dieses Artikels beschrieben ist und schickt dem Aussteller der CSR-Datei das gewünschte CRT Zertifikat.
So wird die CSR-Datei erstellt. Es ist auch am Anfang dieses Artikels beschrieben
# openssl req -new -key <DieGewünschteDomain>.key -out <DieGewünschteDomain>.csr