waishon
Goto Top

NPS - Lets Encrypt

Hallo,

ich habe bei mir jetzt einen NPS Server zum Testen eingerichtet. Aktuell läuft dieser mit einem Selbstsignierten Zertifikate, was prinzipiell ja eigentlich auch richtig ist.
(Ja, ich weiß das es eigentlich unsicher ist solche Zertifikate zu nutzen, dennoch möchte ich das ganz gerne ausprobieren. Also keine Diskussion dazu face-smile)

Allerdings würde ich gerne für den NPS Server ein Let's Encrypt Zertifikat nutzen. Dies funktioniert auch soweit. Ich hab mir unter Debian, wo der Webserver läuft, ein Zertifikat erstellt, daraus eine PCKS Datei erstellt und dann in Windows importiert und anschließend in der Konfiguration von EAP als Zertifikat angegeben.

Leider müssen Let's Encrypt Zertifikate ja alle 3 Monate erneuert werden. Das automatische kopieren vom Debian Server und importieren in Windows über die Powershell ist ja kein Problem oder Alternativ ein Windows Client für Let's Encrypt Zu nutzen der das automatisch macht.

Das Problem ist eher, wie bekomme ich bei "geschütztes EAP" unter Netzwerkrichtlinien automatisch das neue Zertifikat ausgewählt? Wenn ich das neue Importiere bleibt das alte selektiert. Lösche ich das alte wechselt er zu "Let's Encrypt Authority". Dieses Verhalten ist ja schon richtig, weil das ja zwei verschiedene Zertifikate sind.

Jetzt also die Frage:
Wie bekomme ich das ganze automatisiert gewechselt auf das neue Zertifikat? Oder gibt es ggf. eine bessere Methode das Let's Encrypt Zertifikat zu updaten, sodass die Netzwerkrichtlinien dies automatisch verstehen, statt neu imporiteren -> altes löschen?

Content-ID: 342421

Url: https://administrator.de/contentid/342421

Ausgedruckt am: 17.11.2024 um 01:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 05.07.2017 aktualisiert um 05:40:17 Uhr
Goto Top
Zitat von @Waishon:

Aktuell läuft dieser mit einem Selbstsignierten Zertifikate, was prinzipiell ja eigentlich auch richtig ist.
(Ja, ich weiß das es eigentlich unsicher ist solche Zertifikate zu nutzen, dennoch möchte ich das ganz gerne ausprobieren. Also keine Diskussion dazu face-smile)


Wer Dir den Unsinn eingeredet, daß das unsicher ist. Imho ist das sogar sicherer, als irgendwelche gekauften Zertifikate zu verwenden, solange man das richtig macht und dafür sorgt, daß die Clients das Zerticikat verifizieren können.

Bei den gekauften Zertifikaten muß man mit zuviel Vertrauensvorschuß in Vorleistung gehen, das ift nicht gerechtfertigt ist.

Der Nachteil ist halt, daß es umständlucher zu handhaben ist, weil das Rootzertifikat sicher verteilt werden muß.

lks
Waishon
Waishon 05.07.2017 aktualisiert um 08:29:34 Uhr
Goto Top
Hi,

der Gedanke war folgender:
Das Root CA von Let's Encrypt befindet sich ja bereits auf den Geräten drauf. Wenn ich jetzt en Radius mit einem Zertifikat anlegen, dass von diesem Root CA ausgestellt wurde, dann ist das Zertifikat valide und wird von den Clients ohne zu meckern angenommen.
Gleichzeitig habe ich dann aber das Sicherheitsproblem, dass eine beliebige Person sich einen Radius Server hinstellen kann, dann auch ein Zertifikat von Let's Encrypt besorgen und somit die Hashes der Authentifizierung anfangen kann, wenn Clients Anfragen an den "Bösen" Radius stellen face-smile.

Das war damit gemeint mit "Unsicher" face-smile.
Aber wie gesagt nur eine Testumgebung

Edit:// Gerade gesehen. Missverständnis: Das "das es eigentlich unsicher ist" bezog sich auf ein Zertifikat einer Root CA, wie du meintest und wie ich oben erklärt habe ist das unsicher ja face-smile
SlainteMhath
SlainteMhath 05.07.2017 um 11:34:18 Uhr
Goto Top
Moin,

für den MS NPS kannst du auch die AS CS Rolle auf einen Server in deiner AD installieren, dann werden die Zertifikate an Server und Clients autom. verteilt und jeder kann jeden authentifizieren.

lg,
Slainte
133417
Lösung 133417 05.07.2017 um 11:45:52 Uhr
Goto Top
Mit Powershell ein Export-NPSConfiguration in eine XML-Datei machen, dort im Profil der Policy im Element msEAPConfiguration den Hash des neuen Certs eintragen und das ganze XML wieder mit Import-NPSConfiguration importieren.

Gruß
Waishon
Waishon 05.07.2017 aktualisiert um 11:53:12 Uhr
Goto Top
@133417
Ah super! Ich wusste, dass es die Konfig mit dem Eintrag ist, allerdings nicht, dass das der Hash ist.

Was ist das denn genau für ein Hash bzw. wie setzt der sich zusammen?
Ich habe ja eine .pfx Datei aus den privkey.pem, cert.pem und chain.pem generiert.
Wenn ich das dann neu importiere, ist das dann quasi der Hash vom cert.pem?

Ist das ein einfacher MD5 und dann in Binär kodiert?
133417
133417 05.07.2017 aktualisiert um 11:58:12 Uhr
Goto Top
Das hier ist der Fingerabdruck (Hash) des Certs
screenshot
Das kopierst du dir, entfernst die Leerzeichen zischen den Bytes, und dann fügst du diesen String in das Element an der passenden Stelle des HEX-Strings ein. Wo genau kannst du ganz einfach feststellen indem du den Hash des aktuellen Certs holst und es in dem HEX-String des Elements suchst:

Beispiel:
screenshot

Gruß
Waishon
Waishon 05.07.2017 um 12:51:56 Uhr
Goto Top
Ist das eigentlich immer die selbe Stelle, sprich der Anfang immer das Xte von links? Oder kann das auch varrieren?
133417
133417 05.07.2017 aktualisiert um 13:08:03 Uhr
Goto Top
Mach einfach einen -replace des alten Hashes mit dem neuen, feddich, dann brauchst du keine Stelle X.
Hashes des aktuellen Certs bekommst du ja über gci cert:\LocalMachine\My etc.
Waishon
Waishon 05.07.2017 um 22:26:55 Uhr
Goto Top
Vielen Dank!

Ich hab mir jetzt ein PowerShell Skript zusammengebastelt, was automatisch sich das Zertifikat täglich vom Debian Server läd (Der Windows Server hat keinen Webserver auf Port 80 und 443, da der durch die Debian Maschine belegt ist face-smile), und sobald sich die Fingerprints unterscheiden, einfach die Konfiguration exportiert, replacet und wieder importiert.

Funktioniert bisher super! :D Auch wenn es etwas gefrickel ist :P
133417
133417 06.07.2017 um 09:34:38 Uhr
Goto Top
Na dann noch einen Haken dran und alle sind glücklich.