Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
TLS- / SSL- / Serverzertifikate
Zweck: Transportverschlüsselung (TLS/SSL) für die Kommunikation mit HTTPS, FTPS, RDP, SMTPS, LDAPS, usw. zu Servern
Automatische Ausstellung und Einrichtung über ACME [EMPFOHLEN]
Mithilfe eines 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 URL des ACME-Endpunktes vom Anbieter Sectigo: https://acme.sectigo.com/v2/GEANTOV
 - Es werden keine extern erreichbaren Ports benötigt!
 
Key-ID und den dazugehörigen HMAC-Key erhalten Sie von der PKI-Administration, nachdem Sie einen Antrag auf Ausgabe eines ACME-Accounts aus Alfresco ausgefüllt an pki@hs-schmalkalden.de gesendet oder persönlich im Rechenzentrum abgegen. Den Antrag auf Änderung eines ACME-Accounts finden Sie ebenfalls in Alfresco unter Dokumentenservice / Verwaltung und zentrale Einrichtungen / Rechenzentrum / Software / Nutzungsvereinbarung / ACME.
Linux / Unix: acme.sh
Für Linux- und Unix-basierte Systeme wird als ACME-Client acme.sh vom Rechenzentrum empfohlen und unterstützt, da der von Sectigo vorgeschlagene certbot viele Abhängigkeiten (snap, systemd, …) verlangt und sich daher ggf. auf älteren Systemen nicht nutzen lässt. acme.sh setzt für die Nutzung mit Sectigo lediglich sh und cron voraus. Grundsätzlich können aber alle ACME-Clients genutzt werden, die External Account Binding (EAB) unterstützen. 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 | shoderwget -O - https://get.acme.sh | sh(Die manuelle Installation ist unten dokumentiert) - acme.sh-Alias aktualisieren/setzen: Erneut einloggen oder
.profilebzw..bashrc(Je nach Distribution) neuladen:. ~/.profileoder. ~/.bashrc - Standard-CA auf Sectigo setzen:
acme.sh --set-default-ca --server acme.sectigo.com/v2/GEANTOV(Falls bei der Installation eine Warnung bzgl. des Paketssocatangezeigt 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 Sectigo von der HSM keine 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-URL:
acme.sectigo.com/v2/GEANTOV - Domain:
webserver1.hs-schmalkalden.de - Servertyp: Apache
 - System: Ubuntu
 - Zertifikatspfad:
/etc/ssl/certs/webserver1.pem - Schlüsselpfad:
/etc/ssl/private/webserver1.key 
- beispiel.sh
 curl https://get.acme.sh | sh . ~/.profile acme.sh --set-default-ca --server acme.sectigo.com/v2/GEANTOV 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"
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 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.
--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
acme.sh --set-default-ca --server acme.sectigo.com/v2/GEANTOV 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: acme.sectigo.com/v2/GEANTOV
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.deanhängen - ACME-Accountregistrierung oder Zertifikatsausstellung:
-m m.mustermann@hs-sm.deanhä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
Für Windows-Systeme wird als ACME-Client win-acme (Github) vom Rechenzentrum empfohlen und unterstützt. Mithilfe von Cygwin kann acme.sh lt. seiner 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-URL:
acme.sectigo.com/v2/GEANTOV - 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-acmeauf dem Endsystem herunterladen und entpacken: https://github.com/win-acme/win-acme/releases/latest oderDownload-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ßendwin-acmeunter seinem aktuellen Pfad aufruft. Eine nachträgliche Verschiebung des Verzeichnisses erfordert eine manuelle Korrektur der geplanten Aufgabe! - Anschließend muss
win-acmeüberwacs.exeeinmal kurz interaktiv gestartet und mitQdirekt wieder geschlossen werden, damit seine Konfigurationsdateisettings.jsonerstellt wird. - Zur eigentlichen Einrichtung muss jetzt folgende Befehlskette in der PowerShell oder CMD im Verzeichnis von
wacs.exeausgeführt werden.- Da es sich beim Beispiel um den RDP-Dienst einer Windows-Maschine handelt, wird als Installationsskript die mitgelieferte Datei
ImportRDListener.ps1genutzt - Skripte für weitere Dienste befinden sich derzeit noch in der Erprobung
 - Es können auch eigene Skripte verwendet werden. (Siehe hier)
- beispiel.ps1
 .\wacs.exe ` --source manual ` --accepttos ` --certificatestore My ` --baseuri https://acme.sectigo.com/v2/GEANTOV/ ` --eab-key-identifier GFYlXahAbkl9aLbqmq8icf ` --eab-key aJWvKJMVTzd1gQfSMbEhLKAKq5xmFI9WCPkM2u24M6IaVaR7dbzSRmXFRPuccdeAPEslOeBIswakMPiaPeOibB ` --host rdpserver.bereich.hs-schmalkalden.de[,weitere.domains,...] ` --installation script ` --script ".\Scripts\ImportRDListener.ps1" ` --scriptparameters "{CertThumbprint}"
 
 - 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
- Logs und Einstellungen:
C:\ProgramData\win-acme 
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:
- 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"
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:
- beispiel.ps1
 .\wacs.exe ` --source manual ` --accepttos ` --baseuri https://acme.sectigo.com/v2/GEANTOV/ ` --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}'"
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
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 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 für Sectigo nötig:
- Es öffnet sich ein Dialog
Register Account, in dem Sie Ihren Account zuerst benennen sollten (1). Dies ist grundsätzlich optional, erleichtert aber später die Identifikation des Accounts insbesondere, wenn Sie mehrere Accounts konfigurieren. Im Beispiel wurde der AccountSectigogenannt. - Tragen Sie eine E-Mail-Adresse ein, die für Benachrichtigungen bspw. bei Zertifikatsausstellungen im Zusammenhang mit diesem Account dient (2).
 - Wählen Sie
Custom(Eigener Dienstanbieter) beiACME Directory(3) - Als
URLtragen Siehttps://acme.sectigo.com/v2/GEANTOVein (4) und laden Sectigos Nutzungsbedingungen / Terms of Service (TOS), indem Sie aufQuery URLklicken (5). - Lesen und akzeptieren (6) Sie diese Nutzungsbedingungen.
 - Fügen Sie Ihre Account-Zugangsdaten
KIDbeiEAB Key ID(7) und IhrenHMAC-KeybeiEAB Key(8) ein. 
- Nun wählen Sie den Knoten aus, dem Sie diesen Account zuweisen wollen (1).
 - Navigieren Sie dort zum Menü
System / Certifiactes(2). (System müssen Sie ggf. ausklappen) - Wählen Sie den soeben erstellten Account bei
Using Accountaus (3) und bestätigen Sie Ihre Auswahl mitApply(4). 
- Es öffnet sich der Dialog
Create: Domain.- Belassen Sie dort den
Challenge TypebeiHTTP(1). - Fügen Sie den
FQDNIhres Knotens beiDomainhinzu (2). 
 - Wie Sie jetzt zur Bestätigung sehen können sollten, wurde die Domain erfolgreich hinzugefügt (1).
 - Sie können weitere Domains hinzufügen, indem Sie über den Button
Addden vorherigen Schritt beliebig oft wiederholen (2). - 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. PVE-Admin-Guide Abschnitt 3.12.7: Automatic renewal of ACME certificates über den Dienstpve-daily-updatedas Zertifikat bei Bedarf automatisch erneuert. 
- Vergessen Sie als Abschluss nicht, etwaige Zertifikatsausnahmen zu entfernen!
 
Manuelle Ausstellung über Webformular
This domain '<hostname>.hs-schmalkalden.de' is not available for enrollment. Please contact administrator. ab. Als Beispiel ist der Enrollment-Account Rechenzentrum berechtigt, Zertifikate für den FQDN webserver.rz.hs-schmalkalden.de aber nicht für webserver.hs-schmalkalden.de auszustellen.
- Falls Sie berechtigt sind, für andere Verwaltungsbereiche Serverzertifikate zu beantragen, müssen Sie als ersten Schritt im Webformular den Account des gewünschten Bereichs (1) auswählen und mit
Nextbestätigen (2). Sollten Sie nur zur Nutzung eines einzelnen Accounts berechtigt sein, wird dieser automatisch ausgewählt und diese Rückfrage übersprungen. Kontaktieren Sie bitte das Rechenzentrum über pki@hs-schmalkalden.de, falls Ihnen ein benötigter Account nicht zur Auswahl steht.
 - Sie sollten sich nun im eigentlichen Formular befinden:
- Dort müssen Sie das
Profil(Certificate Profile) (1) für Ihr Zertifikat definieren, welches im Wesentlichen über seine Eigenschaften und weitere Auswahlmöglichkeiten bestimmt. I.d.R. ist aber das ProfilOV Multi-Domainfest vorgegeben, da es am flexibelsten ist. - Die
Gültigkeitdes Zertifikats (Certificate Term) ist durch Sectico immer auf 1 Jahr festgelegt (2). - Als
Schlüsseltyp(Key Type) sollten Sie mindestensRSA - 4096oderEC - P-256auswählen (3), um zukunftssicher zu sein. Dies bestimmt vor allem die Resistenz der Verschlüsselung gegen Brute-Force-Angriffe. - Bei
Common Name(4) tragen Sie den vollständigen Domainnamen (FQDN) Ihres Dienstes ein, der mit einem Zertifikat ausgestattet werden soll. - Falls Ihr Dienst über mehrere FQDNs erreichbar ist, können diese für die Profile
OV Multi-DomainundUnified Communications CertificatealsSubject Alternative Nameshinzugefügt werden (5). - Wenn Ihr Zertifikat Wildcard-Domains beinhalten soll, können Sie diese mit einem
*am Anfang vorzugsweise beiSubject Alternative Namesoder alsCommon Nameangeben. Eine Wildcard gilt für genau einen Domain-Level!*.bereich.hs-schmalkalden.deist daher bspw. fürdienst-a.bereich.hs-schmalkalden.deoderdienst-b.bereich.hs-schmalkalden.de, aber nicht fürdienst-c.labor.bereich.hs-schmalkalden.deoderbereich.hs-schmalkalden.degültig! Es empfiehlt sich daher meist, eine Wildcard-Domain immer zusammen mit ihrer Über-Domain zu beantragen. Beachten Sie, dass Ihr Verwaltungsbereich ggf. (noch) nicht zur Ausstellung von Zertifikaten mit Wildcard berechtigt ist. Kontaktieren Sie daher bitte zur Freischaltung formlos das Rechenzentrum mit Ihrer Wunschdomain unter pki@hs-schmalkalden.de. - Wenn Sie möchten, dass das ausgestellte Zertifikat außerdem einer oder mehreren weiteren (externen) Person(en) (bspw. systembetreuenden Studierenden) gesendet wird, können Sie ihre E-Mail-Adresse(n) bei
External Requestershinterlegen (6). - Das Kommentarfeld (Comments) (7) ist optional und dient nur zu Dokumentations- bzw. zu Beschreibungszwecken, falls für den aktuell ausgewählten Account Zertifikate ausschließlich manuell von Mitarbeitern des Rechenzentrums genehmigt werden.
 - Zur Prozessvereinfachung empfiehlt es sich
Auto Renewzu aktivieren. Dies hat zur Folge, dass automatisch ein Nachfolgezertifikat beantragt und Ihnen nach der Genehmigung per E-Mail gesendet wird, sobald das Ablaufdatum des Zertifikats nur noch die darunter definierte Anzahl an Tagen (9) entfernt ist. 
 - Der
Key protection algorithmist an dieser Stelle nicht besonders relevant, da Sie bei der manuellen Einrichtung i.d.R. die .p12-Datei sowieso in ein anderes Format konvertieren müssen. Wählen Sie daher bevorzugt den neueren, sichereren StandardSecure AES256-SHA256aus (1). - Legen Sie ein sicheres
Passwortfest (2), das den privaten Schlüssel beim anschließenden Download verschlüsselt. Bedenken Sie, dass Sie dieses Passwort später beim Einrichten des Zertifikats brauchen werden. Nutzen Sie optimalerweise einen Passwort-Manager (bspw. KeePass), um sich das Passwort zu notieren! 
- Befolgen Sie erneut den Hinweis und schließen Sie nicht den aktuellen Browser-Tab! In Kürze sollten Sie zum Download des beantragten Zertifikats inkl. seines privaten Schlüssels im
PKCS#12-Format aufgefordert werden. Je nach Ihren persönlichen Browser-Einstellungen erfolgt dieser Download ggf. automatisch ohne Dialog. Prüfen Sie daher Ihr Download-Verzeichnis, falls Sie die ausgestellte Zertifikatsdatei vermissen. 
Manuelle Einrichtung
Formatkonvertierung von PKCS#12 nach PEM mit OpenSSL
Ein großer Anteil an Serversoftware (u.A. Nginx, Apache, …) erwartet TLS-Zertifiakte im PEM- und nicht im 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 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
Apache
Nginx
Proxmox
Offizielle Dokumentation: https://pve.proxmox.com/wiki/Certificate_Management
In der Konsole [EMPFOHLEN]
- Laden Sie Ihre .p12-Zertifikatsdatei (bspw. mit
scpoder SFTP-Browser) auf Ihren Proxmox-Knoten nach/etc/pve/localhoch: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
pveproxyneu:systemctl restart pveproxy - Löschen Sie ggf. die hochgeladene .p12-Datei:
rm *.p12 
Im Web GUI
- 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.
 - Fügen Sie im Folgedialog als
Private Key(1) den zuvor exportierten privaten Schlüssel und alsCertifiate Chain(2) Ihr Zertifikat ein. Sie können entweder die Dateiinhalte in das entsprechende Textfeld einfügen (3) oder die Dateien hochladen (4). 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 (5). Löschen Sie keinesfalls andere Zeilen! Bestätigen Sie zum Schluss den Dialog mitUpload(6).
 - Der Zugriff auf das PVE Web GUI über HTTPS sollte ab jetzt ohne Zertifikatsausnahme möglich sein. Entfernen Sie daher etwaige Ausnahmen!
 

















