Benutzer-Werkzeuge

Webseiten-Werkzeuge


zertifikate:pki:server-zertifikate

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
zertifikate:pki:server-zertifikate [2026/04/09 10:06] – [Serverzertifikat beantragen] Carl Meffertzertifikate:pki:server-zertifikate [2026/04/10 11:27] (aktuell) – gelöscht Carl Meffert
Zeile 1: Zeile 1:
-[[zertifikate:pki|zurück]] 
  
- 
-====== TLS- / SSL- / Serverzertifikate ====== 
- 
-Zweck: Transportverschlüsselung (TLS/SSL) für die Kommunikation mit HTTPS, FTPS, RDP, SMTPS, LDAPS, usw. zu Servern 
- 
-<note important>Es existiert **kein** plausibler Grund, einen produktiven Dienst an der Hochschule Schmalkalden zu betreiben, der für seine Transportverschlüsselung das Hinzufügen von Zertifikatsausnahmen benötigt! Dies stellt vor allem ein Sicherheitsrisiko für die Nutzer dar! Die Hochschule Schmalkalden besitzt die nötige Infrastruktur, um solche Risiken **vollständig** zu vermeiden! Sofern Sie noch derartige Dienste betreiben, statten Sie diese bitte umgehend mit ordentlichen Zertifikaten aus oder kontaktieren Sie das Rechenzentrum unter [[pki@hs-schmalkalden.de]], falls Ihnen die dazu nötigen Fachkenntnisse fehlen!</note> 
- 
-<note tip>[[https://ssl-config.mozilla.org|ssl-config.mozilla.org]] kann Ihnen eine zeitgemäße TLS-Serverkonfiguration generieren. Mit [[https://www.ssllabs.com/ssltest|www.ssllabs.com/ssltest]] können Sie eine vorhandene Konfiguration analysieren und auf Schwachstellen testen lassen.</note> 
- 
-===== Automatisiert per ACME [EMPFOHLEN] ===== 
- 
-Mithilfe eines [[https://de.wikipedia.org/wiki/Automatic_Certificate_Management_Environment|ACME]]-Clients können Serverzertifikate komfortabel **unbeaufsichtigt automatisch beantragt, abgeholt, installiert** und **erneuert** werden. Dies reduziert den Betreuungsaufwand und Fehleranfälligkeit des Endsystems enorm, da die Ersteinrichtung von Zertifikaten vereinfacht wird und anschließend auch kein regelmäßiger, manueller Eingriff mehr nötig ist. 
- 
-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 ''Key-ID'', den ''HMAC-Key'' und die ''ACME-Server-URL'' erhalten Sie von der PKI-Administration, nachdem Sie einen [[https://alf.hs-schmalkalden.de/alfresco/webdav/Dokumentenservice/Verwaltung%20und%20zentrale%20Einrichtungen/Rechenzentrum/Software/Nutzungsvereinbarung/ACME|Antrag auf Ausgabe eines ACME-Accounts]] aus Alfresco ausgefüllt an [[pki@hs-schmalkalden.de?subject=Antrag ACME-Account|pki@hs-schmalkalden.de]] gesendet oder persönlich im Rechenzentrum abgegen. Den [[https://alf.hs-schmalkalden.de/alfresco/webdav/Dokumentenservice/Verwaltung%20und%20zentrale%20Einrichtungen/Rechenzentrum/Software/Nutzungsvereinbarung/ACME|Antrag auf Änderung eines ACME-Accounts]] finden Sie ebenfalls in Alfresco unter [[https://alf.hs-schmalkalden.de/alfresco/webdav/Dokumentenservice/Verwaltung%20und%20zentrale%20Einrichtungen/Rechenzentrum/Software/Nutzungsvereinbarung/ACME|Dokumentenservice / Verwaltung und zentrale Einrichtungen / Rechenzentrum / Software / Nutzungsvereinbarung / ACME]]. 
-</note> 
- 
-==== Linux / Unix: acme.sh ==== 
- 
-{{https://upload.wikimedia.org/wikipedia/commons/3/35/Tux.svg?&.png?nolink&100}} 
- 
-Für Linux- und Unix-basierte Systeme wird als ACME-Client [[https://acme.sh|acme.sh]] vom Rechenzentrum empfohlen und unterstützt. ''acme.sh'' setzt für die Nutzung lediglich ''sh'' und ''cron'' voraus. Grundsätzlich können aber alle ACME-Clients genutzt werden, die ''External Account Binding'' (EAB) unterstützen. Z. B. [[https://certbot.eff.org|Certbot]] hat jedoch viele Abhängigkeiten (snap, systemd, ...) und ist ggf. auf älteren Systemen nicht nutzbar. Diese Anleitung erfolgt daher am Beispiel von acme.sh. Alle Befehle werden auf dem Endsystem eingegeben: 
- 
- 
- 
-  - **acme.sh automatisch installieren:** ''%%curl https://get.acme.sh | sh%%'' oder ''%%wget -O - https://get.acme.sh | sh%%'' (Die manuelle Installation ist [[#manuelle_installation|unten]] dokumentiert) 
-  - **acme.sh-Alias aktualisieren/setzen:** Erneut einloggen oder ''.profile'' bzw. ''.bashrc'' (Je nach Distribution) neuladen: ''. ~/.profile'' oder ''. ~/.bashrc'' 
-  - **Standard-CA auf ACME-Server-URL setzen:** ''%%acme.sh --set-default-ca --server %%**_ACME_Server_URL_**%% %%''(Falls bei der Installation eine Warnung bzgl. des Pakets ''socat'' angezeigt wird, kann diese ignoriert werden, da dieses nur relevant für den in dieser Anleitung nicht verwendeten Standalone-Modus ist.) 
-  - **ACME-Account registrieren:** ''%%acme.sh --register-account --eab-kid %%**_EIGENE_KEY_ID_** %%--%%eab-hmac-key **_EIGENER_HMAC_KEY_**'' (Dieser Schritt kann einige Sekunden dauern und evtl. beim ersten Versuch fehlschlagen) 
-  - **Zertifikat ausstellen lassen:** ''%%acme.sh --issue -d %%**_EIGENE_DOMAIN_** -w /dev/null'' (Auch dieser Schritt kann dauern, der Webroot-Modus wird hierbei als Dummy mit /dev/null genutzt, da der Zertifikatsanbieter der HSM keine [[https://letsencrypt.org/docs/challenge-types|Challenge]] verlangt) 
-  - **Zertifikat installieren:** ''acme.sh -i -d **_EIGENE_DOMAIN_** %%--%%cert-file **_ABSOLUTER_PFAD_ZUM_ZERTIFIKAT_** %%--%%key-file **_ABSOLUTER_PFAD_ZUM_PRIVATE_KEY_** %%--reloadcmd "%%**_BEFEHL_ZUM_NEUSTART_DES_DIENSTES_**%%"%%'' 
- 
-Die eingegebenen Parameter werden standardmäßig in ''~/.acme.sh'' gespeichert. Die automatische Installation richtet außerdem einen Cronjob ein, welcher regelmäßig ''%%acme.sh --cron%%'' aufruft. Dies liest die gespeicherten Parameter ein, um das Zertifikat bei Bedarf automatisch zu erneuern und zu installieren. 
- 
-=== Beispiel === 
- 
-  * Key-ID: ''GFYlXahAbkl9aLbqmq8icf'' 
-  * HMAC-Key: ''aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB'' 
-  * ACME-Server-URL(Harica): ''%%https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory%%'' 
-  * Domain: ''webserver1.hs-schmalkalden.de'' 
-  * Servertyp: Apache 
-  * System: Ubuntu 
-  * Zertifikatspfad: ''/etc/ssl/certs/webserver1.pem'' 
-  * Schlüsselpfad: ''/etc/ssl/private/webserver1.key'' 
- 
-<code bash beispiel.sh> 
-curl https://get.acme.sh | sh 
-. ~/.profile 
-acme.sh --set-default-ca --server https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory 
-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 /etc/ssl/certs/webserver1.pem --key-file /etc/ssl/private/webserver1.key --reloadcmd "systemctl reload apache2" 
-</code> 
- 
-=== Erweiterte Verwendungen === 
- 
-== Manuelle Installation == 
- 
-Die automatische Online-Installation legt den für die spätere Automatisierung benötigten Cronjob und einen Alias im Profil (''~/.bashrc'', ''~/.profile'' o.Ä.) automatisch an. Möchte man dies nicht und acme.sh manuell einrichten, kann auch nur das [[https://github.com/acmesh-official/acme.sh/releases/latest|Archiv]] heruntergeladen und entpackt werden. Anschließend kann die acme.sh-Skriptdatei bspw. mit einem Symlink in ''/sbin'' verknüpft oder über ihren Pfad aufgerufen werden. Der Aufruf ''%%acme.sh --cron%%'' zur automatischen Erneuerung muss ebenfalls manuell eingerichtet werden. 
- 
-<note warning>Es scheint aktuell einen Bug zu geben, der dafür sorgt, dass der Standard-Konfigurationsordner von acme.sh (~/.acme.sh) mit ''%%--set-default-ca%%'' nicht angelegt wird. Es erscheint aber trotzdem eine Erfolgsmeldung!? Dieses Verzeichnis muss bei manueller Installation daher händisch vor dem Setzen der CA erstellt werden: ''mkdir ~/.acme.sh''</note> 
- 
-<code bash> 
-acme.sh --set-default-ca --server https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory 
- 
-touch: cannot touch '/root/.acme.sh/account.conf': No such file or directory 
-./acme.sh-3.0.7/acme.sh: 2295: cannot open /root/.acme.sh/account.conf: No such file 
-grep: /root/.acme.sh/account.conf: No such file or directory 
-grep: /root/.acme.sh/account.conf: No such file or directory 
-./acme.sh-3.0.7/acme.sh: 2322: cannot create /root/.acme.sh/account.conf: Directory nonexistent 
-grep: /root/.acme.sh/account.conf: No such file or directory 
-[Wed Apr 17 14:51:01 UTC 2024] Changed default CA to: https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory 
-</code> 
- 
-== 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:** ''%%-s email=m.mustermann@hs-sm.de%%'' anhängen 
-  - **ACME-Accountregistrierung oder Zertifikatsausstellung:** ''%%-m m.mustermann@hs-sm.de%%'' anhängen 
- 
-== 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, dem bspw. ''dezernat42.hs-schmalkalden.de'' zugewiesen wurde, kann auch Zertifikate für ''%%ftp.dezernat42.hs-schmalkalden.de%%'', ''%%foo.bar.dezernat42.hs-schmalkalden.de%%'' oder ''*.dezernat42.hs-schmalkalden.de'' anfordern. 
- 
-Um Multidomain-Zertifikate ausstellen zu lassen, genügt es, den Domain-Parameter ''-d'' mehrfach beim Aufruf zu verwenden. Zu beachten ist, dass das erzeugte Zertifikat lokal auf dem Endsystem unter der ersten Domain gespeichert wird und bei der Installation auch nur diese Domain angegeben werden muss. 
- 
-In Kombination bedeutet dies, dass der Befehl ''%%acme.sh --issue -d dezernat42.hs-schmalkalden.de -d *.dezernat42.hs-schmalkalden.de -w /dev/null%%'' ein Multidomain-Zertifikat erzeugt, welches für die Hauptdomain und alle seine Subdomains gültig ist. 
- 
-== 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:** ''acme.sh -i -d **_DOMAIN_** %%--%%cert-file **_ABSOLUTER_PFAD_ZUM_ZERTIFIKAT_** %%--%%key-file **_ABSOLUTER_PFAD_ZUM_PRIVATE_KEY_** %%--reloadcmd "%%**_BEFEHL_ZUM_NEUSTART_DES_DIENSTES_**%%" --%%ca-file **_ABSOLUTER_PFAD_ZUM_CA-ZERTIFIKAT_**'' 
-  - **Fullchain (Nötig bei nginx):** ''acme.sh -i -d **_DOMAIN_** %%--%%cert-file **_ABSOLUTER_PFAD_ZUM_ZERTIFIKAT_** %%--%%key-file **_ABSOLUTER_PFAD_ZUM_PRIVATE_KEY_** %%--reloadcmd "%%**_BEFEHL_ZUM_NEUSTART_DES_DIENSTES_**%%" --%%fullchain-file **_ABSOLUTER_PFAD_ZUR_FULLCHAIN_**'' 
- 
-==== Windows: win-acme ==== 
- 
-{{https://upload.wikimedia.org/wikipedia/commons/e/e2/Windows_logo_and_wordmark_-_2021.svg?&.png?nolink&200}} 
- 
-Für Windows-Systeme wird als ACME-Client [[https://www.win-acme.com|win-acme]] ([[https://github.com/win-acme/win-acme|Github]]) vom Rechenzentrum empfohlen und unterstützt. Mithilfe von [[https://cygwin.com|Cygwin]] kann ''acme.sh'' lt. seiner [[https://github.com/acmesh-official/acme.sh/wiki#4-how-to-run-on-windows-with-cygwin-or-git-bash|Dokumentation]] zwar ebenfalls unter Windows genutzt werden, ''win-acme'' liefert allerdings einige nützliche PowerShell-Skripte mit, welche die Zertifikatsinstallation vereinfachen. 
- 
-**Beispiel:** 
- 
-  * Key-ID: ''GFYlXahAbkl9aLbqmq8icf'' 
-  * HMAC-Key: ''aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB'' 
-  * ACME-Server-URL(Harica): ''%%https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory%%'' 
-  * Domain: ''rdpserver.bereich.hs-schmalkalden.de'' 
-  * Servertyp: RDP-Dienst (z.B. bei Terminalserver oder VM) 
-  * System: Windows Server 2019 
- 
-Folgende Schritte sind für die Einrichtung von ''win-acme'' zur Ausstellung von Zertifikaten notwendig: 
- 
-  - ''win-acme'' auf dem Endsystem herunterladen und entpacken: https://github.com/win-acme/win-acme/releases/latest oder ''Download''-Bereich auf https://www.win-acme.com 
-  - Das entpackte Verzeichnis sollte zuerst in seinen korrekten Zielpfad (bspw. ''C:\Program Files'') verschoben werden, da bei der Einrichtung eine geplante Aufgabe erstellt wird, die anschließend ''win-acme'' unter seinem aktuellen Pfad aufruft. <fc #ff0000>**Eine nachträgliche Verschiebung des Verzeichnisses erfordert eine manuelle Korrektur der geplanten Aufgabe!**</fc> 
-  - Anschließend muss ''win-acme'' über ''wacs.exe'' einmal kurz interaktiv gestartet und mit ''Q'' direkt wieder geschlossen werden, damit seine Konfigurationsdatei ''settings.json'' erstellt wird. 
-  - In der Datei ''settings.json'' (<fc #ff0000>**1**</fc>) muss dann der Wert von ''Store/CertificateStore/**PrivateKeyExportable**'' (<fc #ff0000>**2**</fc>) auf ''true'' (<fc #ff0000>**3**</fc>) gesetzt werden: {{ zertifikate:pki:win-acme-1-settings.json.png?direct&400 |}} 
-  - Zur eigentlichen Einrichtung muss jetzt folgende Befehlskette in der PowerShell oder CMD im Verzeichnis von ''wacs.exe'' ausgeführt werden. 
-    - Da es sich beim Beispiel um den RDP-Dienst einer Windows-Maschine handelt, wird als Installationsskript die mitgelieferte Datei ''ImportRDListener.ps1'' genutzt 
-    - Skripte für weitere Dienste befinden sich derzeit noch in der Erprobung  
-    - Es können auch eigene Skripte verwendet werden. (Siehe [[https://www.win-acme.com/reference/plugins/installation/script|hier]])<code powershell beispiel.ps1> 
-.\wacs.exe ` 
-  --source manual ` 
-  --accepttos ` 
-  --certificatestore My ` 
-  --baseuri https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory ` 
-  --eab-key-identifier GFYlXahAbkl9aLbqmq8icf ` 
-  --eab-key aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB ` 
-  --host rdpserver.bereich.hs-schmalkalden.de[,weitere.domains,...] ` 
-  --installation script ` 
-  --script ".\Scripts\ImportRDListener.ps1" ` 
-  --scriptparameters "{CertThumbprint}"</code> <fc #ff0000>**ACHTUNG:** Der Slash am Ende von ''%%--baseuri%%'' ist relevant!</fc> {{ zertifikate:pki:win-acme-2-cli.png?direct&800 |}} 
-  - 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: ''certlm.msc'': {{ zertifikate:pki:win-acme-3-certlm.png?direct&800 |}} 
-    - Geplante Aufgabe überprüfen / ändern: ''taskschd.msc'' {{ zertifikate:pki:win-acme-4-taskschd.png?direct&800 |}} 
-    - Logs und Einstellungen: ''C:\ProgramData\win-acme'' 
-    - Weitere Installationsskripte / allgemeine Verwendung: [[https://www.win-acme.com/manual/advanced-use/examples|hier]], [[https://www.win-acme.com/manual/getting-started|hier]] und [[https://www.win-acme.com/reference/cli|hier]] 
- 
-=== Erweiterte Verwendungen === 
- 
-== Domain-Controller / Management-Server: Zertifikate für die RDP-Zugänge von verwalteten Maschinen ausstellen und verteilen == 
- 
-Hierzu wird vom Rechenzentrum folgendes PowerShell-Installationsskript zur Verfügung gestellt: 
- 
-<code powershell HSM_ImportRemoteRDListener.ps1> 
-param( 
-    [Parameter(Position=0,Mandatory=$true)] 
-    [string]$cn, 
-    [Parameter(Position=1,Mandatory=$true)] 
-    [string]$thumbprint, 
-    [Parameter(Position=2,Mandatory=$true)] 
-    [string]$path, 
-    [Parameter(Position=3,Mandatory=$true)] 
-    [string]$pwd 
-) 
- 
-$destPath = "Users\$env:username\tmp.pfx" 
-$destLocalPath = "C:\$destPath" 
-$destUNCPath = "\\$cn\C$\$destPath" 
- 
-Copy "$path" "$destUNCPath" 
- 
-wmic /node:`"$cn`" process call create "powershell /c Import-PfxCertificate -FilePath '$destLocalPath' -CertStoreLocation Cert:\LocalMachine\My -Password ( ConvertTo-SecureString -String '$pwd' -Force -AsPlainText ); Remove-Item '$destLocalPath'" 
- 
-Start-Sleep 2 
- 
-wmic /node:`"$cn`" /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$thumbprint" 
-</code> 
-**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 ''wacs.exe'' muss mit dem Skript beispielhaft in etwa folgendermaßen aussehen: 
-<code powershell beispiel.ps1> 
-.\wacs.exe ` 
-  --source manual ` 
-  --accepttos ` 
-  --baseuri https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory ` 
-  --eab-key-identifier GFYlXahAbkl9aLbqmq8icf ` 
-  --eab-key aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB ` 
-  --host fqdn.ihres.rdpservers.hs-schmalkalden.de ` 
-  --installation script ` 
-  --script ".\Pfad\Zum\HSM_ImportRemoteRDListener.ps1" ` 
-  --scriptparameters "'{CertCommonName}' '{CertThumbprint}' '{CacheFile}' '{CachePassword}'" 
-</code> 
- 
-Beachten Sie, dass im Gegensatz zum obrigen Beispiel der Parameter ''%%--certificatestore%%'' nicht vorhanden ist (Ansonsten wird das Zertifikat auch im Zertifikatsspeicher der ausstellenden lokalen Maschine abgelegt) und 4 anstatt nur einem //Scriptparameter// übergeben werden. 
- 
-==== Proxmox ==== 
-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. 
-</note> 
- 
-Proxmox bietet einen eingebauten ACME-Client, welcher ab Version 8.2 auch offiziell benutzerdefinierte Dienstanbieter unterstützt. Für Proxmox-Instanzen mit Version < 8 kann acme.sh anhand der [[#linuxunixacmesh|Linux-Anleitung]] genutzt werden, da acme.sh grundsätzlich auch für Proxmox funktioniert. Proxmox-Instanzen mit Version >= 8, aber < 8.2 können einfach über Upgrade auf Version >= 8.2 gebracht werden, um dieses Feature nutzen zu können. Folgende Schritte sind für die Einrichtung des PVE-ACME-Clients nötig: 
- 
-  - Wählen Sie in Ihrem Proxmox-Knoten Ihr ''Datacenter'' bzw. ''Rechenzentrum'' (<fc #ff0000>**1**</fc>) aus und scrollen Sie dort im Menü nach unten bis zu ''SDN / ACME'' (<fc #ff0000>**2**</fc>). (SDN müssen Sie ggf. ausklappen). Klicken Sie dort unter ''Accounts'' auf den Button ''Add'' (<fc #ff0000>**1**</fc>) {{ :zertifikate:pki:pve-acme-1.png?direct&600 |}} 
-  -  
-    - Es öffnet sich ein Dialog ''Register Account'', in dem Sie Ihren Account zuerst benennen sollten (<fc #ff0000>**1**</fc>). Dies ist grundsätzlich optional, erleichtert aber später die Identifikation des Accounts insbesondere, wenn Sie mehrere Accounts konfigurieren. Im Beispiel wurde der Account ''Sectigo'' (alter Zertifikatsanbieter) genannt. 
-    - Tragen Sie eine E-Mail-Adresse ein, die für Benachrichtigungen bspw. bei Zertifikatsausstellungen im Zusammenhang mit diesem Account dient  (<fc #ff0000>**2**</fc>). 
-    - Wählen Sie ''Custom'' (Eigener Dienstanbieter) bei ''ACME Directory'' (<fc #ff0000>**3**</fc>) 
-    - Als ''URL'' tragen Sie ''%%https://acme-v02.harica.gr/acme/38669cf4-c987-a456-e123-af987db7f654/directory%%'' ein (<fc #ff0000>**4**</fc>) und laden Harica Nutzungsbedingungen / Terms of Service (TOS), indem Sie auf ''Query URL'' klicken (<fc #ff0000>**5**</fc>). 
-    - Lesen und akzeptieren (<fc #ff0000>**6**</fc>) Sie diese Nutzungsbedingungen. 
-    - Fügen Sie Ihre Account-Zugangsdaten ''KID'' bei ''EAB Key ID'' (<fc #ff0000>**7**</fc>) und Ihren ''HMAC-Key'' bei ''EAB Key'' (<fc #ff0000>**8**</fc>) ein. 
-    - Bestätigen Sie den Dialog mit dem Button ''Register'' (<fc #ff0000>**9**</fc>) {{ :zertifikate:pki:pve-acme-2.png?direct&600 |}} 
-  - Anschließend wird Ihnen ein Fenster mit dem Prozessstatus angezeigt. Dieses Fenster können Sie bei Abschluss oben rechts schließen (<fc #ff0000>**1**</fc>). {{ :zertifikate:pki:pve-acme-3.png?direct&600 |}} 
-  -  
-    - Nun wählen Sie den Knoten aus, dem Sie diesen Account zuweisen wollen (<fc #ff0000>**1**</fc>). 
-    - Navigieren Sie dort zum Menü ''System / Certifiactes'' (<fc #ff0000>**2**</fc>). (System müssen Sie ggf. ausklappen) 
-    - Wählen Sie den soeben erstellten Account bei ''Using Account'' aus (<fc #ff0000>**3**</fc>) und bestätigen Sie Ihre Auswahl mit ''Apply'' (<fc #ff0000>**4**</fc>). 
-    - Fügen Sie nun mit dem Button ''Add'' eine Domain hinzu, für die dieser Account ein Zertifikat ausstellen soll (<fc #ff0000>**5**</fc>). {{ :zertifikate:pki:pve-acme-4.png?direct&600 |}} 
-  - Es öffnet sich der Dialog ''Create: Domain''. 
-    - Belassen Sie dort den ''Challenge Type'' bei ''HTTP'' (<fc #ff0000>**1**</fc>). 
-    - Fügen Sie den ''FQDN'' Ihres Knotens bei ''Domain'' hinzu (<fc #ff0000>**2**</fc>). 
-    - Schließen Sie den Dialog mit dem Button ''Create'' ab (<fc #ff0000>**3**</fc>). {{ :zertifikate:pki:pve-acme-5.png?direct&600 |}} 
-  -  
-    - Wie Sie jetzt zur Bestätigung sehen können sollten, wurde die Domain erfolgreich hinzugefügt (<fc #ff0000>**1**</fc>). 
-    - Sie können weitere Domains hinzufügen, indem Sie über den Button ''Add'' den vorherigen Schritt beliebig oft wiederholen (<fc #ff0000>**2**</fc>). 
-    - Wenn Sie alle gewünschten Domains hinzugefügt haben, beantragen Sie Ihre Zertifikate erstmalig manuell mit dem Button ''Order Certificates Now''. Später wird lt. [[https://pve.proxmox.com/pve-docs/pve-admin-guide.pdf|PVE-Admin-Guide Abschnitt 3.12.7: Automatic renewal of ACME certificates]] über den Dienst ''pve-daily-update'' das Zertifikat bei Bedarf automatisch erneuert. 
-    - Nach Abschluss des Ausstellungsprozesses wird das Web-GUI neugestartet. {{ :zertifikate:pki:pve-acme-6.png?direct&600 |}} 
-  - Sie sollten nun zur Bestätigung Ihr ausgestelltes Zertifikat in der darüberliegenden Übersicht unter der Datei ''pveproxy-ssl.pem'' finden. {{ :zertifikate:pki:pve-acme-7.png?direct&800 |}} 
-  - Vergessen Sie als Abschluss nicht, etwaige Zertifikatsausnahmen zu entfernen! 
- 
-===== Manuell [OLDSCHOOL]===== 
- 
-==== Serverzertifikat beantragen ==== 
-FIXME 
-<note important>Anleitung wird derzeit aktualisiert in Arbeit</note> 
- 
-<note important>Falls Sie planen, den von Ihnen betreuten Dienst permanent mit einem Zertifikat auszustatten, sollten Sie die [[#automatische_ausstellung_und_einrichtung_ueber_acme_empfohlen|automatische Ausstellung und Einrichtung über ACME]] in Erwägung ziehen, um Ihren administrativen Aufwand zu reduzieren und das Risiko von abgelaufenen Zertifikaten zu vermeiden.</note> 
- 
-<note> Serverzertifikate können von allen Mitarbeitern über Harica beantragt werden. Es obligt den Administratoren (pki@hs-schmalkalden.de) diese Anträgen auch zu genehmigen. Bitte bei neuen Serverzertifikaten den Administratoren vorab Bescheid geben, dann können Missverständnisse vermieden und der Vorgang beschläunigt werden.</note> 
- 
-  - Anmeldung bei [[https://cm.harica.gr | Harica-Zertifikats-Manager-Webseite]] via [[idp-anmeldung|Academic Login / IDP-Anmeldung]] 
-  - Nach dem Login wird Ihnen Ihr Dashbord angezeigt und Informationen zu ggf. vorhandenen Zertifikaten 
-  - Navigieren Sie im linken Menü zu "Server", um ein entsprechendes Zertifikat zu beantragen: Bild1 
-  - Geben Sie die Daten für den Zertifikatseintrag ein: 
-    * einen beschreibenden Namen wie den Servernamen oder/und die Funktion unter <fc #ed1c24>**1**</fc> 
-    * geben Sie alle Domains unter <fc #ed1c24>**2**</fc>  an, die für den Server zertifiziert werden sollen 
-    * wählen Sie ob die selbe Domain mit "www." enthalten sein soll 
-    * wenn alle Domains eingetragen wurden, betätigen Sie "Next": 
-  - Betätigen Sie "Select" bei der Option "For enterprise or organization(OV)": Bild3 
-  - Bestätigen Sie Ihre Auswahl mit "Next": Bild4 
-  - Es werden die Organizations Informationen angezeigt, bestätigen Sie mit "Next": Bild5 
-  - Es werden ale Informationen zum Zertifikat zusammengefasst angezeigt. Bestätigen SIe die "Terms of Use", die "Certification Practices" unddie "Data Orivacy Statements" von HARICA (//Sie können diese gerne lesen//) und betätigen Sie "Next": Bild6 
-  - Nun benötigen Sie eine Zertifikatsantrags-Datei (CSR). Sie können diese zusammen mit einem private Key von Harica generieren lassen <fc #ed1c24>**1**</fc> oder wenn Sie bereits eine Datei besitzen den Inhalt hochladen <fc #ed1c24>**2**</fc> 
- 
-^ Auto-generate  ^ ^manually Submit  ^ 
-| Bild7.a        | | Bild7.m          | 
- 
-  - Der Antrag sollte nun bei den Administratoren eingegangen sein nach Bearbeitung Ihres Antrags erhalten Sie eine E-Mail von Harica.  
-  - Sie können Ihre Server-Zertifikatsanträge unter "Enterprise/SSL Requests" einsehen: Bild9 
- 
-==== Server Zertifikat herunterladen === 
- 
-  - Wenn Ihr Zertifikats-Antrag genehmigt wurde erhalten Sie eine E-Mail 
-  - Melden Sie sich auf Harica per Academic Login an 
-  - In Ihem Dashboard sehen Sie Ihre Serverzertifikate chronologisch sortiert 
-  - Betätigen Sie den Download-Knopf 
-  - Wählen Sie das benötigte Zerifikatsformat/Inhalt aus: 
-    * 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://de.wikipedia.org/wiki/Privacy_Enhanced_Mail|PEM]]- und nicht im [[https://de.wikipedia.org/wiki/Public-Key_Cryptography_Standards|PKCS#12]]-Format. Die über das Webformular im PKCS#12-Format ausgestellten Zertifikate müssen daher vorab konvertiert werden, um für diese Servertypen verwendbar zu sein. Hierfür bietet sich das [[https://www.openssl.org|OpenSSL-Toolkit]] an. 
- 
-  * Ausgangsbeispieldatei: ''cert.p12'' 
-  * **Fett** markierte Ausgaben benötigt man wahrscheinlich am häufigsten 
-  * Der Ausgabedateiname ist __unterstrichen__ 
-  * Alle Dateinamen sind beispielhafte Empfehlungen 
- 
-^ Ausgabe                                                        ^ Befehl ^ 
-| **Nur Zertifikat**                                             | ''openssl pkcs12 -out __cert.pem__ -nokeys -clcerts -in cert.p12''| 
-| **Nur privater Schlüssel mit Passwort**                        | ''openssl pkcs12 -out __cert.enc.key__ -nocerts -in cert.p12''| 
-| **Nur privater Schlüssel ohne Passwort**                       | ''openssl pkcs12 -out __cert.key__ -nocerts -nodes -in cert.p12''| 
-| Zertifikat und privater Schlüssel mit Passwort in einer Datei  | ''openssl pkcs12 -out __cert+key.enc.pem__ -clcerts -in cert.p12''| 
-| Zertifikat und privater Schlüssel ohne Passwort in einer Datei | ''openssl pkcs12 -out __cert+key.pem__ -clcerts -nodes -in cert.p12''| 
-| Nur CA-Zertifikate / Zertifikatskette                          | ''openssl pkcs12 -out __chain.pem__ -nokeys -cacerts -in cert.p12''| 
-| **Zertifikat und CA-Zertifikate / komplette Zertifikatskette** | ''openssl pkcs12 -out __fullchain.pem__ -nokeys -in cert.p12''| 
-| Alles mit Passwort in einer Datei                              | ''openssl pkcs12 -out __all.enc.pem__ -in cert.p12'' | 
-| Alles ohne Passwort in einer Datei                             | ''openssl pkcs12 -out __all.pem__ -nodes -in cert.p12'' | 
- 
-=== Windows === 
- 
-<note important>Dieser Abschnitt ist in Arbeit! (ToDo)</note> 
- 
-=== Apache === 
- 
-<note important>Dieser Abschnitt ist in Arbeit! (ToDo)</note> 
- 
-=== Nginx === 
- 
-<note important>Dieser Abschnitt ist in Arbeit! (ToDo)</note> 
- 
-=== Proxmox === 
- 
-Offizielle Dokumentation: [[https://pve.proxmox.com/wiki/Certificate_Management]] 
- 
-== In der Konsole [EMPFOHLEN] == 
- 
-  - Laden Sie Ihre .p12-Zertifikatsdatei (bspw. mit ''scp'' oder SFTP-Browser) auf Ihren Proxmox-Knoten nach ''/etc/pve/local'' hoch: ''scp _LOKALER_PFAD_IHRES_ZERTIFIKATS_.p12 root@_IHR_HOST_:/etc/pve/local/'' 
-  - Verbinden Sie sich über SSH mit dem Knoten oder melden Sie sich lokal an. 
-  - Navigieren Sie nach ''/etc/pve/local'': ''cd /etc/pve/local'' 
-  - Exportieren Sie Ihr Zertifikat ins PEM-Format nach ''pveproxy-ssl.pem'': ''openssl pkcs12 -out pveproxy-ssl.pem -nokeys -clcerts -in *.p12'' 
-  - Exportieren Sie den privaten Schlüssel Ihres Zertifikats ins PEM-Format ohne Passwort nach ''pveproxy-ssl.key'': ''openssl pkcs12 -out pveproxy-ssl.key -nocerts -nodes -in *.p12'' 
-  - Starten Sie den Dienst ''pveproxy'' neu: ''systemctl restart pveproxy'' 
-  - Löschen Sie ggf. die hochgeladene .p12-Datei: ''rm *.p12'' 
- 
-== Im Web GUI == 
- 
-<note important>Da im Vergleich zur Einrichtung über die Konsole noch zusätzliche Schritte nötig sind, der Prozess aber ansonsten komplett identisch ist, wird dieser Einrichtungsweg nicht empfohlen.</note> 
- 
-  - 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 #ff0000>**1**</fc>) zu ''System/Certificates'' (<fc #ff0000>**2**</fc>) und klicken Sie dort auf ''Upload Custom Certificate'' (<fc #ff0000>**3**</fc>). {{ zertifikate:pki:server-pve-1.png?direct&600 |}} 
-  - Fügen Sie im Folgedialog als ''Private Key'' (<fc #ff0000>**1**</fc>) den zuvor exportierten privaten Schlüssel und als ''Certifiate Chain'' (<fc #ff0000>**2**</fc>) Ihr Zertifikat ein. Sie können entweder die Dateiinhalte in das entsprechende Textfeld einfügen (<fc #B5E61D>**3**</fc>) oder die Dateien hochladen (<fc #FF7F27>**4**</fc>). Im Gegensatz zur Einrichtung über die Konsole müssen Sie in beiden Feldern abschließend noch einige Zusatzzeilen (%%"Bag Attributes"%%) oberhalb der Zeilen ''-----BEGIN ...'' entfernen, die zur Ablehnung Ihrer Eingaben führen würden (<fc #A349A4>**5**</fc>). Löschen Sie keinesfalls andere Zeilen! Bestätigen Sie zum Schluss den Dialog mit ''Upload'' (<fc #ff0000>**6**</fc>). {{ zertifikate:pki:server-pve-2.png?direct&600 |}} 
-  - Nun sollte folgende Bestätigungsmeldung ''%%API server will be restarted to use new certificates, please reload web-interface!%%'' erscheinen. Befolgen Sie diese und laden Sie den aktuellen Browser-Tab neu: {{ zertifikate:pki:server-pve-3.png?direct&600 |}} 
-  - 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 ''System/Certificates'' (<fc #ff0000>**1**</fc>) in der Übersicht prüfen (<fc #ff0000>**2**</fc>): {{ zertifikate:pki:server-pve-4.png?direct&600 |}} 
zertifikate/pki/server-zertifikate.1775729207.txt.gz · Zuletzt geändert: von Carl Meffert

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki