zertifikate:pki:server-zertifikate
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| zertifikate:pki:server-zertifikate [2026/04/09 13:08] – [Serverzertifikat beantragen] Carl Meffert | zertifikate:pki:server-zertifikate [2026/04/10 11:27] (aktuell) – gelöscht Carl Meffert | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | [[zertifikate: | ||
| - | |||
| - | ====== TLS- / SSL- / Serverzertifikate ====== | ||
| - | |||
| - | Zweck: Transportverschlüsselung (TLS/SSL) für die Kommunikation mit HTTPS, FTPS, RDP, SMTPS, LDAPS, usw. zu Servern | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | <note tip> | ||
| - | |||
| - | ===== Automatisiert per ACME [EMPFOHLEN] ===== | ||
| - | |||
| - | Mithilfe eines [[https:// | ||
| - | |||
| - | Um ACME an der HSM verwenden zu können, benötigen Sie: | ||
| - | - Ihre Key-ID (KID) / Account-ID (22 Zeichen) | ||
| - | - Ihren HMAC-Key (86 Zeichen) | ||
| - | - die ACME-Server-URL | ||
| - | - Es werden **keine** extern erreichbaren Ports benötigt! | ||
| - | |||
| - | <note tip> | ||
| - | Eine '' | ||
| - | </ | ||
| - | |||
| - | ==== Linux / Unix: acme.sh ==== | ||
| - | |||
| - | {{https:// | ||
| - | |||
| - | Für Linux- und Unix-basierte Systeme wird als ACME-Client [[https:// | ||
| - | |||
| - | |||
| - | |||
| - | - **acme.sh automatisch installieren: | ||
| - | - **acme.sh-Alias aktualisieren/ | ||
| - | - **Standard-CA auf ACME-Server-URL setzen:** '' | ||
| - | - **ACME-Account registrieren: | ||
| - | - **Zertifikat ausstellen lassen:** '' | ||
| - | - **Zertifikat installieren: | ||
| - | |||
| - | Die eingegebenen Parameter werden standardmäßig in '' | ||
| - | |||
| - | === Beispiel === | ||
| - | |||
| - | * Key-ID: '' | ||
| - | * HMAC-Key: '' | ||
| - | * ACME-Server-URL(Harica): | ||
| - | * Domain: '' | ||
| - | * Servertyp: Apache | ||
| - | * System: Ubuntu | ||
| - | * Zertifikatspfad: | ||
| - | * Schlüsselpfad: | ||
| - | |||
| - | <code bash beispiel.sh> | ||
| - | curl https:// | ||
| - | . ~/.profile | ||
| - | acme.sh --set-default-ca --server https:// | ||
| - | acme.sh --register-account --eab-kid GFYlXahAbkl9aLbqmq8icf --eab-hmac-key aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB | ||
| - | acme.sh --issue -d webserver1.hs-schmalkalden.de -w /dev/null | ||
| - | acme.sh -i -d webserver1.hs-schmalkalden.de --cert-file / | ||
| - | </ | ||
| - | |||
| - | === Erweiterte Verwendungen === | ||
| - | |||
| - | == Manuelle Installation == | ||
| - | |||
| - | Die automatische Online-Installation legt den für die spätere Automatisierung benötigten Cronjob und einen Alias im Profil ('' | ||
| - | |||
| - | <note warning> | ||
| - | |||
| - | <code bash> | ||
| - | acme.sh --set-default-ca --server https:// | ||
| - | |||
| - | touch: cannot touch '/ | ||
| - | ./ | ||
| - | grep: / | ||
| - | grep: / | ||
| - | ./ | ||
| - | grep: / | ||
| - | [Wed Apr 17 14:51:01 UTC 2024] Changed default CA to: https:// | ||
| - | </ | ||
| - | |||
| - | == Zusätzliches Zusenden per E-Mail == | ||
| - | |||
| - | Bei der automatischen Installation von acme.sh, beim Registrieren des ACME-Accounts oder beim Ausstellen des ersten Zertifikates kann eine E-Mail-Adresse angegeben werden, um beim Ausstellen und Erneuern das Zertifikat zusätzlich per E-Mail zu senden. Dazu müssen die Befehle folgendermaßen modifiziert werden: | ||
| - | |||
| - | - **Automatische Installation: | ||
| - | - **ACME-Accountregistrierung oder Zertifikatsausstellung: | ||
| - | |||
| - | == Subdomain-, Wildcard- & Multidomain-Zertifikate == | ||
| - | |||
| - | Grundsätzlich können ACME-Accounts für ihre zugewiesenen Domains auch Zertifikate für Subdomains beliebiger Tiefe inkl. Wildcard ausstellen lassen. Ein ACME-Account, | ||
| - | |||
| - | Um Multidomain-Zertifikate ausstellen zu lassen, genügt es, den Domain-Parameter '' | ||
| - | |||
| - | In Kombination bedeutet dies, dass der Befehl '' | ||
| - | |||
| - | == Zertifikatsinstallation mit CA-Zertifikat oder Fullchain == | ||
| - | |||
| - | Beim Installationbefehl können als Pfadangaben neben dem Zertifikat und dem Schlüssel selber außerdem noch das CA-Zertifikat und/oder die komplette Kette angegeben werden: | ||
| - | |||
| - | - **CA-Zertifikat: | ||
| - | - **Fullchain (Nötig bei nginx):** '' | ||
| - | |||
| - | ==== Windows: win-acme ==== | ||
| - | |||
| - | {{https:// | ||
| - | |||
| - | Für Windows-Systeme wird als ACME-Client [[https:// | ||
| - | |||
| - | **Beispiel: | ||
| - | |||
| - | * Key-ID: '' | ||
| - | * HMAC-Key: '' | ||
| - | * ACME-Server-URL(Harica): | ||
| - | * Domain: '' | ||
| - | * Servertyp: RDP-Dienst (z.B. bei Terminalserver oder VM) | ||
| - | * System: Windows Server 2019 | ||
| - | |||
| - | Folgende Schritte sind für die Einrichtung von '' | ||
| - | |||
| - | - '' | ||
| - | - Das entpackte Verzeichnis sollte zuerst in seinen korrekten Zielpfad (bspw. '' | ||
| - | - Anschließend muss '' | ||
| - | - In der Datei '' | ||
| - | - Zur eigentlichen Einrichtung muss jetzt folgende Befehlskette in der PowerShell oder CMD im Verzeichnis von '' | ||
| - | - Da es sich beim Beispiel um den RDP-Dienst einer Windows-Maschine handelt, wird als Installationsskript die mitgelieferte Datei '' | ||
| - | - Skripte für weitere Dienste befinden sich derzeit noch in der Erprobung | ||
| - | - Es können auch eigene Skripte verwendet werden. (Siehe [[https:// | ||
| - | .\wacs.exe ` | ||
| - | --source manual ` | ||
| - | --accepttos ` | ||
| - | --certificatestore My ` | ||
| - | --baseuri https:// | ||
| - | --eab-key-identifier GFYlXahAbkl9aLbqmq8icf ` | ||
| - | --eab-key aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB ` | ||
| - | --host rdpserver.bereich.hs-schmalkalden.de[, | ||
| - | --installation script ` | ||
| - | --script " | ||
| - | --scriptparameters " | ||
| - | - Dies sollte ein Zertifikat für die angegebene Domain ausgestellt und installiert sowie eine geplante Aufgabe zur automatischen Erneuerung angelegt haben. | ||
| - | |||
| - | === Überprüfung / Weitere Informationen === | ||
| - | - Zertifikat überprüfen: | ||
| - | - Geplante Aufgabe überprüfen / ändern: '' | ||
| - | - Logs und Einstellungen: | ||
| - | - Weitere Installationsskripte / allgemeine Verwendung: [[https:// | ||
| - | |||
| - | === Erweiterte Verwendungen === | ||
| - | |||
| - | == Domain-Controller / Management-Server: | ||
| - | |||
| - | Hierzu wird vom Rechenzentrum folgendes PowerShell-Installationsskript zur Verfügung gestellt: | ||
| - | |||
| - | <code powershell HSM_ImportRemoteRDListener.ps1> | ||
| - | param( | ||
| - | [Parameter(Position=0, | ||
| - | [string]$cn, | ||
| - | [Parameter(Position=1, | ||
| - | [string]$thumbprint, | ||
| - | [Parameter(Position=2, | ||
| - | [string]$path, | ||
| - | [Parameter(Position=3, | ||
| - | [string]$pwd | ||
| - | ) | ||
| - | |||
| - | $destPath = " | ||
| - | $destLocalPath = " | ||
| - | $destUNCPath = " | ||
| - | |||
| - | Copy " | ||
| - | |||
| - | wmic / | ||
| - | |||
| - | Start-Sleep 2 | ||
| - | |||
| - | wmic / | ||
| - | </ | ||
| - | **Erläuterung: | ||
| - | - Zunächst wird die ausgestellte PFX-Zertifikatsdatei temporär über die administrative Freigabe von Laufwerk C im Home-Verzeichnis des ausführenden Nutzers auf der Zielmaschiene platziert. | ||
| - | - Anschließend wird das Zertifikat in den entfernten Zertifikatsspeicher importiert und die temporäre Datei gelöscht. | ||
| - | - Es wird zwischenzeitlich 2 Sekunden gewartet, da WMIC-Aufrufe asynchron ausgeführt werden. | ||
| - | - Abschließend wird das neue Zertifikat über seinen Fingerprint für den RDP-Dienst eingerichtet. | ||
| - | |||
| - | Der Aufruf von '' | ||
| - | <code powershell beispiel.ps1> | ||
| - | .\wacs.exe ` | ||
| - | --source manual ` | ||
| - | --accepttos ` | ||
| - | --baseuri https:// | ||
| - | --eab-key-identifier GFYlXahAbkl9aLbqmq8icf ` | ||
| - | --eab-key aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB ` | ||
| - | --host fqdn.ihres.rdpservers.hs-schmalkalden.de ` | ||
| - | --installation script ` | ||
| - | --script " | ||
| - | --scriptparameters "' | ||
| - | </ | ||
| - | |||
| - | Beachten Sie, dass im Gegensatz zum obrigen Beispiel der Parameter '' | ||
| - | |||
| - | ==== Proxmox WebGUI==== | ||
| - | FIXME | ||
| - | <note important> | ||
| - | Unter dem Zertifikatsanbieter Harica noch nicht getestet! | ||
| - | |||
| - | Bei Proxmox gibt es zudem zurzeit keine Möglichkeit Drittanbieter über dei WEB-UI als ACME-Directory einzugeben. Die Anleitung ist daher eher theoretischer Natur. | ||
| - | </ | ||
| - | |||
| - | Proxmox bietet einen eingebauten ACME-Client, | ||
| - | |||
| - | - Wählen Sie in Ihrem Proxmox-Knoten Ihr '' | ||
| - | - | ||
| - | - Es öffnet sich ein Dialog '' | ||
| - | - Tragen Sie eine E-Mail-Adresse ein, die für Benachrichtigungen bspw. bei Zertifikatsausstellungen im Zusammenhang mit diesem Account dient (<fc # | ||
| - | - Wählen Sie '' | ||
| - | - Als '' | ||
| - | - Lesen und akzeptieren (<fc # | ||
| - | - Fügen Sie Ihre Account-Zugangsdaten '' | ||
| - | - Bestätigen Sie den Dialog mit dem Button '' | ||
| - | - Anschließend wird Ihnen ein Fenster mit dem Prozessstatus angezeigt. Dieses Fenster können Sie bei Abschluss oben rechts schließen (<fc # | ||
| - | - | ||
| - | - Nun wählen Sie den Knoten aus, dem Sie diesen Account zuweisen wollen (<fc # | ||
| - | - Navigieren Sie dort zum Menü '' | ||
| - | - Wählen Sie den soeben erstellten Account bei '' | ||
| - | - Fügen Sie nun mit dem Button '' | ||
| - | - Es öffnet sich der Dialog '' | ||
| - | - Belassen Sie dort den '' | ||
| - | - Fügen Sie den '' | ||
| - | - Schließen Sie den Dialog mit dem Button '' | ||
| - | - | ||
| - | - Wie Sie jetzt zur Bestätigung sehen können sollten, wurde die Domain erfolgreich hinzugefügt (<fc # | ||
| - | - Sie können weitere Domains hinzufügen, | ||
| - | - Wenn Sie alle gewünschten Domains hinzugefügt haben, beantragen Sie Ihre Zertifikate erstmalig manuell mit dem Button '' | ||
| - | - Nach Abschluss des Ausstellungsprozesses wird das Web-GUI neugestartet. {{ : | ||
| - | - Sie sollten nun zur Bestätigung Ihr ausgestelltes Zertifikat in der darüberliegenden Übersicht unter der Datei '' | ||
| - | - Vergessen Sie als Abschluss nicht, etwaige Zertifikatsausnahmen zu entfernen! | ||
| - | |||
| - | ===== Manuell [OLDSCHOOL]===== | ||
| - | |||
| - | ==== Serverzertifikat beantragen ==== | ||
| - | FIXME | ||
| - | <note important> | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | < | ||
| - | |||
| - | - Anmeldung bei [[https:// | ||
| - | - Nach dem Login wird Ihnen Ihr Dashbord angezeigt und Informationen zu ggf. vorhandenen Zertifikaten | ||
| - | - Navigieren Sie im linken Menü zu " | ||
| - | - Geben Sie die Daten für den Zertifikatsantrag ein: | ||
| - | * einen beschreibenden Namen wie den Servernamen oder/und die Funktion unter <fc # | ||
| - | * geben Sie alle Domains unter <fc # | ||
| - | * wählen Sie, ob die jeweilige Domain mit " | ||
| - | * wenn alle Domains eingetragen wurden, betätigen Sie " | ||
| - | - Betätigen Sie " | ||
| - | - Bestätigen Sie Ihre Auswahl mit " | ||
| - | - Es werden die Organizations Informationen angezeigt, bestätigen Sie mit " | ||
| - | - Es werden ale Informationen zum Zertifikat zusammengefasst angezeigt. | ||
| - | * Bestätigen Sie die "Terms of Use", die " | ||
| - | * betätigen Sie " | ||
| - | - Nun benötigen Sie eine Zertifikatsantrags-Datei (CSR): | ||
| - | * Sie können diese zusammen mit einem private Key von Harica generieren lassen <fc # | ||
| - | * Sie können den inhalt einer vorhanden CSR-Datei Ihres Servers hochladen <fc # | ||
| - | |||
| - | ^ Auto-generate | ||
| - | | Bild7.a | ||
| - | |||
| - | 10. Der Antrag sollte nun bei den Administratoren eingegangen sein nach Bearbeitung Ihres Antrags erhalten Sie eine E-Mail von Harica. \\ | ||
| - | 11. Sie können Ihre Server-Zertifikatsanträge unter " | ||
| - | |||
| - | ==== Serverzertifikat herunterladen === | ||
| - | |||
| - | - Wenn Ihr Zertifikats-Antrag genehmigt wurde erhalten Sie eine E-Mail | ||
| - | - Anmeldung bei [[https:// | ||
| - | - In Ihem Dashboard sehen Sie Ihre Serverzertifikate chronologisch sortiert | ||
| - | - Betätigen Sie den Download-Knopf | ||
| - | - Wählen Sie das benötigte Zerifikatsformat/ | ||
| - | * PEM --> Das Serverzertifikat einzeln (wenn dies einzeln benötigt wird, weil die CA in einem separatem File gespeichert wird) | ||
| - | * PEM (bundle) --> Das Serverzertifikat mit CA-Zertifikatskette (wenn das Zertifikat und die Zertifikatskette in einer Datei benötigt wird / die Zertifikatskette aktualisiert werden muss) | ||
| - | * PEM (root-CA) --> Das Serverzertifikat mit rootCA-Zertifikatskette (wenn das Zertifikat und die rootCA benötigt wird / die rootCA aktualisert werden muss) | ||
| - | * [...] weitere | ||
| - | - Die Zertifikats-Datei(-en) müssen nun auf den uzgehörigen Server abgelegt werden | ||
| - | ==== Serverzertifikat einbinden==== | ||
| - | |||
| - | === Formatkonvertierung von PKCS#12 nach PEM mit OpenSSL === | ||
| - | |||
| - | Ein großer Anteil an Serversoftware (u.A. Nginx, Apache, ...) erwartet TLS-Zertifiakte im [[https:// | ||
| - | |||
| - | * Ausgangsbeispieldatei: | ||
| - | * **Fett** markierte Ausgaben benötigt man wahrscheinlich am häufigsten | ||
| - | * Der Ausgabedateiname ist __unterstrichen__ | ||
| - | * Alle Dateinamen sind beispielhafte Empfehlungen | ||
| - | |||
| - | ^ Ausgabe | ||
| - | | **Nur Zertifikat** | ||
| - | | **Nur privater Schlüssel mit Passwort** | ||
| - | | **Nur privater Schlüssel ohne Passwort** | ||
| - | | Zertifikat und privater Schlüssel mit Passwort in einer Datei | '' | ||
| - | | Zertifikat und privater Schlüssel ohne Passwort in einer Datei | '' | ||
| - | | Nur CA-Zertifikate / Zertifikatskette | ||
| - | | **Zertifikat und CA-Zertifikate / komplette Zertifikatskette** | '' | ||
| - | | Alles mit Passwort in einer Datei | '' | ||
| - | | Alles ohne Passwort in einer Datei | '' | ||
| - | |||
| - | === Windows === | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | === Apache === | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | === Nginx === | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | === Proxmox === | ||
| - | |||
| - | Offizielle Dokumentation: | ||
| - | |||
| - | == In der Konsole [EMPFOHLEN] == | ||
| - | |||
| - | - Laden Sie Ihre .p12-Zertifikatsdatei (bspw. mit '' | ||
| - | - Verbinden Sie sich über SSH mit dem Knoten oder melden Sie sich lokal an. | ||
| - | - Navigieren Sie nach ''/ | ||
| - | - Exportieren Sie Ihr Zertifikat ins PEM-Format nach '' | ||
| - | - Exportieren Sie den privaten Schlüssel Ihres Zertifikats ins PEM-Format ohne Passwort nach '' | ||
| - | - Starten Sie den Dienst '' | ||
| - | - Löschen Sie ggf. die hochgeladene .p12-Datei: '' | ||
| - | |||
| - | == WebGUI == | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | - Exportieren Sie zuerst von Ihrer .p12-Zertifikatsdatei das **Zertifikat** und den zugehörigen **privaten Schlüssel ohne Passwort** jeweils im PEM-Format. Dies ist nahezu mit der Einrichtung in der Konsole identisch, mit Ausnahme des letzten Schritts. | ||
| - | - Navigieren Sie im Proxmox Web GUI bei den Einstellungen Ihres Knotens (<fc # | ||
| - | - Fügen Sie im Folgedialog als '' | ||
| - | - Nun sollte folgende Bestätigungsmeldung '' | ||
| - | - Der Zugriff auf das PVE Web GUI über HTTPS sollte ab jetzt ohne Zertifikatsausnahme möglich sein. Entfernen Sie daher etwaige Ausnahmen! | ||
| - | - Sie können die Zertifikatseinrichtung abschließend unter '' | ||
zertifikate/pki/server-zertifikate.1775740091.txt.gz · Zuletzt geändert: von Carl Meffert
