PKI - Automatisierung Ausstellung von Zertifikaten

Mitglied: makaroni

makaroni (Level 1) - Jetzt verbinden

02.01.2017 um 09:45 Uhr, 1889 Aufrufe, 13 Kommentare, 3 Danke

Hallo zusammen,

wir betreiben eine PKI und benötigen für viele Linux Maschinen Zertifikate. Somit müssten manuell (OpenSSL, CertSRV, ...) Zertifikate einzeln ausgestellt werden.
Das ist sehr mühsam und zeitaufwändig. Gibt es eine Möglichkeit dieses automatisiert durchzuführen? Sprich von einem dritten (Windows intregierten) Client mittels z.B. CSV Zertifikate ausstelen und diese als .pfx zu erhalten?

Vielen Dank und beste Grüße
Mitglied: 131381
131381 (Level 2)
LÖSUNG 02.01.2017, aktualisiert um 10:03 Uhr
Jepp , Get-Certificate in der Powershell oder certreq in der CMD sind deine Freunde.

Gruß mik
Bitte warten ..
Mitglied: makaroni
04.01.2017 um 15:12 Uhr
Hey,

erstmal danke für deine Antwort. Die Befehle kenne ich.
Allerdings ist bei mir eher die Frage, ob es überhaupt möglich ist, dass ich von einem beliebigen Windowsrechner ein Zertifikat anfordere, dieses dann mit dem Private Key als .PFX packe. Und das dann am besten noch mit einer CSV Datei die mit x Namen betankt ist.

Der Rechner, der dieses anfordert, fordert dieses nur an, er benötigt es selbst nicht.
Bitte warten ..
Mitglied: 131381
131381 (Level 2)
LÖSUNG 04.01.2017, aktualisiert um 16:27 Uhr
Zitat von @makaroni:
erstmal danke für deine Antwort. Die Befehle kenne ich.
Gut.
Allerdings ist bei mir eher die Frage, ob es überhaupt möglich ist, dass ich von einem beliebigen Windowsrechner ein Zertifikat anfordere,
Ja, kein Problem, du musst dem User in deiner CA nur das Recht erteilen für das entsprechende Template Zertifikate auszustellen (ACL im TEMPLATE), dann kannst du von jeder Station dein Zertifikat mit dem User ausstellen lassen.
dieses dann mit dem Private Key als .PFX packe. Und das dann am besten noch mit einer CSV Datei die mit x Namen betankt ist.
Auch kein Problem. Mit Get-Certificate packt er das Zertifikat zwar erst in den Windows-Store, aber dort kannst du es problemlos als PFX exportieren (ebenfalls direkt mit PS) und anschließend löschen.

In diesem Skript von Frank siehst du wie das geht:
https://www.frankysweb.de/exchange-2013-assistent-fuer-zertifikate/

Für eine Schleife über eine CSV importierst du deine CSV ebenfalls mit einem Oneliner in deine Powershell
Und machst dann mit eine Foreach-Schleife deine Zertifikatsanforderungen. Fertig ist die Laube.
Bitte warten ..
Mitglied: makaroni
05.01.2017 um 09:21 Uhr
Besten Dank :) face-smile

Damit komme ich weiter :) face-smile
Bitte warten ..
Mitglied: 131381
131381 (Level 2)
05.01.2017 um 09:25 Uhr
Immer gerne :-) face-smile
Bitte warten ..
Mitglied: makaroni
05.01.2017 um 14:22 Uhr
Ich habe alles soweit hinbekommen wie ich es mir vorgestellt habe (CSV fehlt noch, kommt später)
Nun würde ich gerne noch zu den DNS Einträgen den Subjectname im Zertifikat hinzufügen.
Es ist nicht zwingend notwenig, finde ich aber sauberer...

Da schreit mein Script aber immer rum, dass der String einen ungültiges x500 Attribut beinhaltet
Encode: The string contains an invalid X500 name attribute key

Folgende Zeile versuche ich auszuführen:

Get-Certificate -Template WebServer -DnsName test123 -SubjectName test222

Ohne den -SubjetName funktioniert alles super dupa. Ist es nicht möglich den mit einzubinden?!
Bitte warten ..
Mitglied: 131381
131381 (Level 2)
LÖSUNG 05.01.2017, aktualisiert um 14:32 Uhr
-SubjectName test222
Öhm, du weist anscheinend nicht das das Subject anders formatiert sein muss ... Bei einem x509 Subject muss immer der konkrete Feldname vorangestellt werden z.B. für den Common Name CN=BLABLA
Deswegen auch die Fehlermeldung:
The string contains an invalid X500 name attribute key

Certificate Attributes
Beispiel

Bitte warten ..
Mitglied: makaroni
06.01.2017 um 07:52 Uhr
Ergibt irgendwie Sinn.
Danke :) face-smile Nun bin ich auch hoffentlich ruhig :) face-smile
Wünsche Dir ein schönes Wochenende
Bitte warten ..
Mitglied: makaroni
27.01.2017 um 10:57 Uhr
Gibt es eine Möglichkeit, den Friendlyname beim Zertifikatsantrag noch mit einzufügen?
Get-Certificate scheint dieses nicht zu können.

Get-Certificate -Template <string> [-Url <uri>] [-SubjectName <string>] [-DnsName <string[]>] [-Credential <PkiCredential>] [-CertStoreLocation <string>] [-WhatIf] [-Confirm] [<CommonParameters>] Get-Certificate -Request <Certificate> [-Credential <PkiCredential>] [-WhatIf] [-Confirm] [<CommonParameters>]
Bitte warten ..
Mitglied: 131381
131381 (Level 2)
LÖSUNG 27.01.2017, aktualisiert um 11:11 Uhr
Zitat von @makaroni:
Gibt es eine Möglichkeit, den Friendlyname beim Zertifikatsantrag noch mit einzufügen?
Get-Certificate scheint dieses nicht zu können.
Wozu brauchst du den? Den kannst du in der Certificate-MMC doch leicht anpassen.

Kannst du aber auch leicht über die Powershell nachträglich machen denn die Zertifikate kann man wie Dateien in der Powershell über das PS-Drive cert:\ ansprechen:
den benötigten "Thumbprint (lange Zeichenfolge i.o.g. Befehl)" des neuen Zertifikats erhältst du ja beim Erzeugen im Objekt des Zertifikats.

Bedenke das der FriendlyName nur auf dem jeweiligen System erhalten bleibt auf dem du diesen änderst. Dieser ist kein Bestandteil des Zertifikats an sich.
Bitte warten ..
Mitglied: makaroni
27.01.2017, aktualisiert um 11:48 Uhr
Zitat von @makaroni:
Gibt es eine Möglichkeit, den Friendlyname beim Zertifikatsantrag noch mit einzufügen?
Get-Certificate scheint dieses nicht zu können.
Wozu brauchst du den? Den kannst du in der Certificate-MMC doch leicht anpassen.
Viele Applicationen benötigen mehrere Zertifikte z.B. SkypeForBusiness und in der GUI ist es dann so auf den ersten Blick nicht ersichtlich welches welches ist :) face-smile
Kannst du aber auch leicht über die Powershell nachträglich machen denn die Zertifikate kann man wie Dateien in der Powershell über das PS-Drive cert:\ ansprechen:
den benötigten "Thumbprint (lange Zeichenfolge i.o.g. Befehl)" des neuen Zertifikats erhältst du ja beim Erzeugen im Objekt des Zertifikats.
Perfekt, hat funktioniert :) face-smile Vielen Dank
Bedenke das der FriendlyName nur auf dem jeweiligen System erhalten bleibt auf dem du diesen änderst. Dieser ist kein Bestandteil des Zertifikats an sich.
Jaein, ich kann den auf jedem System neu anpassen. Exportiere ich dann aber das Zertifikat, mit dem aktuellen FriendlyName, so wird dieser mit exportiert. Ich habe das Zertifikat gerade nochmal auf einem anderen System importiert auf dem mir nun der Friendlyname angezeigt wird, den auf einem anderen System geändert habe bevor ich es exportiert habe. Aber ich gebe dir Recht, für einen Zertifikatsrequest wird dieses nicht benötigt und dabei auch nicht gesetzt. Aber dennoch beinhaltet ja das Zertifikat ein Attribut wo dieser wohl gespeichert wird.
Bitte warten ..
Mitglied: 131381
131381 (Level 2)
27.01.2017, aktualisiert um 12:05 Uhr
Zitat von @makaroni:
Jaein, ich kann den auf jedem System neu anpassen. Exportiere ich dann aber das Zertifikat,
Jepp, im Export-Fall ja wenn es sich um eine PFX handelt, packt MS da eigene Felder mit rein.
Bitte warten ..
Mitglied: makaroni
27.01.2017 um 12:09 Uhr
Danke, gut zu wissen :) face-smile
Bitte warten ..
Heiß diskutierte Inhalte
Router & Routing
FB und Archer 2 getrennte Netze mit einer WAN-Verbindung
neuhier14Vor 18 StundenFrageRouter & Routing25 Kommentare

Hallo, ich habe eine Fritzbox 7490 und einen Archer C5 mit OpenWRT. Die Fritzbox ist mein Hauptrouter. Ich würde daneben gerne ein komplett getrenntes ...

Entwicklung
Plattformübergreifende Programmierung mit Visual Studio
gelöst nagitaVor 1 TagAllgemeinEntwicklung11 Kommentare

Hallo ich habe mir vor einiger Zeit die aktuellste Version von Visual Studio installiert und bin eigentlich auch recht zufrieden damit. Ich habe vor, ...

Netzwerke
PFSense und Transferprobleme
Xaero1982Vor 1 TagFrageNetzwerke23 Kommentare

Moin Zusammen, leidiges Thema PFSense - ich hab mich mal wieder ran gewagt. Ich hab hier so ein paar VLANs laufen und nen ESX. ...

Datenbanken
Liste als PDF ausdrucken
jensgebkenVor 1 TagFrageDatenbanken6 Kommentare

Hallo Gemeinschaft, Ich habe eine Access Datenbank und darin eine Abfrage in der Kunden Adressen und Kosten angezeigt werden pro Kunde. Nun möchte ich, ...

Exchange Server
Postfach für öffentliche Ordner ist voll
gelöst Tommy525600Vor 1 TagFrageExchange Server6 Kommentare

Hallo an alle, ich habe folgendes Problem: Mein primäres Postfach für öffentliche Ordner ist voll (99,58 GB) (und ja, ich kann auch nix dafür). ...

Linux
Bootable Win7 stick from Raspberry commandline
winlinVor 15 StundenFrageLinux12 Kommentare

Hallo zusammen Ich benötige einen bootfähigen Win7 USB Stick. Muss diesen über meine Raspberry erstellen. Was ist die beste Variante habe schon ein paar ...

Windows Server
Kein Netzwerkzugriff auf Windows Server 2019?
Henk86Vor 1 TagFrageWindows Server8 Kommentare

Ich habe mir einen neuen "Heimserver" mit Windows Server 2019 (evaluation vorerst) aufgesetzt. Gestern habe ich von meinem Hauptrechner einige Daten auf den Server ...

Windows Server
Problem bei Windows 10 Deployment mit MDT
gelöst neophyte2021Vor 1 TagFrageWindows Server7 Kommentare

Hallo, ich habe folgendes Problem, ich habe in einem Artikel auf englisch gelesen, das wenn man mit dem MDT Windows 10 ausrollen will und ...