EASYCERT - Easy certifying with openssl (Linux)
EASYCERT ist eine einfache Möglichkeit openssl zu managen, welches auf den gängigen Linux-Systemen für die Zertifizierung von Apache zum Einsatz kommt. Es ist eine von mir erstellte Sofware, die ein Arbeiten mit openssl angenehmer gestaltet. Dieses Tutorial erklärt euch, wie ihr EASYCERT verwenden könnt. Die Zertifikate lassen sich für alle gängigen Systeme verwenden.
Um effektiv mit EASYCERT zu arbeiten, ist die Verwendung der Shell als root (kein anderer sollte auch Zertifikate bearbeiten dürfen) sinnvoller als alles über die GUI einzurichten.
⚠ Wichtige Informationen:
EASYCERT dient nur der Zertifizierung von Apache oder anderen Webservern. Es ist keine Software, um selbst eine (Root) CA zu erstellen oder zu managen. Es geht dabei um das einfache Erstellen von eigenen Zertifikaten. Eine eigene Root CA sollte schon vorhanden sein. Auch muss man ggf. Dateien von Linux zu Windos hin- und herschieben können. Dazu kann man scp oder einen Mount verwenden...
Inhalt:
Download
1. Download der Datei mit z.B. wget:
wget https://www.toxic-os.de/cloud/data/easycert_setup.sh.txt
2. Entfernen der Ändung .txt:
mv easycert_setup.sh.txt easycert_setup.sh
3. Die Datei ausführbar machen:
chmod +x easycert_setup.sh
Installation
1. Die Datei ausführen:
./easycert_setup.sh --install
⚠ Wichtige Informationen:
Alle Dateien werden unter /opt/easycert gespeichert.
Diese Datei muss editiert werden, um das Root CA-Zertifikat in die CA-Funktion zu kopieren, oder das Root CA-Zertifikat muss nach /opt/easycert kopiert und mit openssl_caconvert in ca.domain.local.pem konvertiert werden (!)Die Zertifikate sind bis zu einem bestimmten Datum valide, bitte Datum regelmäßig prüfen. Danach wird ein neues Zertifikat benötigt. Außerdem wird openssl und apache benötigt.
2. Diese Meldung mit Enter bestätigen.
3. Name des Webservers (ohne Domäne) eingeben: z.B. server
4. Name der Domäne eingeben: z.B. domain.local
5. IP-Adresse des Webservers eingeben: z.B. 192.168.178.42
6. Eine valide E-Mail-Adresse eingeben: z.B. admin@domain.de
7. Länder-Code eingeben: z.B. DE
8. Einen Ort eingeben: z.B. Berlin
9. Organisation oder Firma eingeben: z.B. Meine Firma GmbH
10. Organisationeinheit eingeben: z.B. IT
Die Daten werden zur Überprüfung einmal abgefragt:
Data...
name: server
domain: domain.local
ip: 192.168.178.42
email: admin@domain.de
country: DE
location: Berlin
organisation: Meine Firma GmbH
unit: IT
Is everything okay? [Y/N]
⚠ Wichtige Informationen:
Sollte ein Fehler unterlaufen sein, weswegen man die Bestätigung mit N quittieren muss, müssen alle Daten erneut eingegeben werden.
11. Diese Meldung mit Y oder N bestätigen.
Folgendes passiert:
Create directories:
- /opt/easycert/
- /opt/easycert/server
Create files:
- crthelp (outputs help file)
- openssl_caconvert (converts CA cer file into pem file)
- openssl_calink (links CA cert into /etc/ssl/certs)
- openssl_convert (converts cer file into pem file)
- openssl_create (creates csr file and key file)
- openssl_link (links certificate and key into /etc/ssl/certs and /private)
- openssl_p12convert (creates pfx file from pem and key)
12. Befehl, um den Webserver neuzustarten eingeben: z.B. /etc/init.d/apache2 restart
Write content in files...
13. Wurde das Root CA-Zertifikat in die dafür vorgesehe Funktion einefügt? [Y/N] Wenn nicht, dann kann man das wiederholen oder manuell ergänzen.
14. Diese Meldung mit Enter bestätigen.
Folgendes passiert:
Make files executable...
Create symbolic links in /usr/local/bin/:
- crthelp
- ocaconvert
- ocalink
- server-convert
- server-create
- server-link
- server-p12convert
Important notes:
Please check the content of /opt/easycert/server/openssl_create!
⚠ Wichtige Informationen:
Die Symlinks nehmen den Namen des Webservers (in diesem Fall server) an. Sämtliche folgende Befehle verwenden diesen Namen...
15. Diese Meldung mit Enter bestätigen.
Die Installation ist beendet. Mit ./easycert_setup.sh --add lässt sich ein weiterer Server hinzufügen.
Einrichtung
1. Wurde das Root CA-Zertifikat nicht in die Funktion kopiert, muss es als ca.domain.local.pem unter /opt/easycert abgelegt werden. Microsoft stellt in der Regel cer-Dateien aus. Dieses kann einfach konvertiert werden, wenn es ca.domain.local.cer heißt und unter /opt/easycert abgelegt wird:
ocaconvert
2. Das pem-Zertifikat (Root CA) nach /etc/ssl/certs verlinken, und den Server neustarten:
ocalink
3. CSR (Certificate Signing Request) und Privaten Schlüssel erstellen:
server-create
⚠ Wichtige Informationen:
Der Create-Befehl verwendet den FQDN und die IP-Adresse, um diese zusätzlich valide für das Zertifikat zu machen. Die Informationen werden als sogenannte Zertifikatsgegenstand-Alternativ-Namen gespeichert. Bearbeitet man das Skript, kann man weitere Alternativnamen mit ,DNS:Name angeben:
"[SAN]\nsubjectAltName=DNS:server.domain.local,DNS:server,DNS:192.168.178.42,DNS:..."
4. Inhalt des CSR kopieren und bei der Zertifizierungsstelle das Zertifikat als Webserver-Zertifikat ausstellen lassen. Das dabei z.B. entstehende Cer-Zertifikat unter /opt/easycert/server als server.domain.local.cer ablegen
5. Das Cer-Zertifikat in pem umwandeln:
server-convert
6. Das pem-Zertifikat nach /etc/ssl/certs und den privaten Schlüssel nach /etc/ssl/private verlinken, und den Server neustarten:
server-link
⚠ Wichtige Informationen:
Unter Umständen muss die SSL-Konfiguration /etc/apache2/sites-enabled/default-ssl.conf angepasst werden:
SSLCertificateFile /etc/ssl/certs/server.domain.local.pem
SSLCertificateKeyFile /etc/ssl/private/server.domain.local.key
Spezial
Wird ein Zertifikat benötigt, das den privaten Schlüssel integriert haben muss (server.domain.local.pfx), hilft dieser Befehl:
server-p12convert
Deinstallation
Um easycert und alle Zertifikate, etc. zu deinstallieren muss nur ./easycert_setup.sh --uninstall ausgerführt und bestätigt werden.
⚠ Wichtige Informationen:
Sollte man bei der Deinstallation keine Domäne angeben, werden ALLE auf dem Server vorhandenen Zertifikate und private Schlüssel restlos entfernt. Dieses Problem wird noch behoben.
Links und Quellen
- https://www.toxic-os.de/itsecurity/easycert-hilfe.html
- https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html
- https://www.openssl.org/docs/
- https://www.ssh.com/ssh/putty/putty-manuals/0.68/Chapter5.html
- https://de.wikipedia.org/wiki/Secure_Copy
Sollten Sie Fragen, Anregungen oder Verbesserungsvorschläge haben (jeder kann sich ja täuschen), dann senden Sie mir bitte via Kontakt eine Nachricht zu. Vielen Dank!
20.08.2019 - 15:17 Uhr - Oliver Stech