Codesigning-Zertifikat unter Vertrauenswürdige Herausgeber, PowerShell vertraut trotzdem nicht
Hallo Zusammen,
mal wieder ein kleines Problemchen.
Ich bin gerade dabei, PowerShell-Scripte zu schreiben. Funktioniert soweit gut. Diese möchte ich nun gerne signieren und die ExecutionPolicy sämtlicher Systeme auf "AllSigned" stellen. Passt soweit.
Nun ist es so, dass ich ein Zertifikat erstellt und per GPO verteilt habe. Die Clients haben dieses bekommen, es wird auch unter den vertrauenswürdigen Herausgebern angezeigt. Jetzt signiere ich das PowerShell-Script mittels Idera PowerShell Professional Plus. Wenn ich das Script nun aber ausführen möchte, wird angezeigt, dass dem Zertifikat nicht vertraut wird.
Das Ganze habe ich erst in einer VMware-Umgebung getestet, bevor ich es auf dem Produktivsystem genau gleich ausgerollt habe. Unter VMware hat's funktioniert, im Produktivsystem nicht.
Ich weiß zur Zeit auch gar nicht, wo ich beginnen soll, zu suchen.
Wir verwenden Windows Server 2008 R2 und Windows 7 Clients.
Any Tipps?
Update:
Ich habe eben herausgefunden, dass der Unterschied darin lag, dass ich in der Testumgebung direkt das Windows-Eigene Code Signing-Zertifikat verteilt habe. In der Produktivumgebung habe ich dieses Zertifikat dupliziert und dieses dann verteilt. Wenn ich in der Testumgebung das Zertifikat ebenso dupliziere, exportiere und per GPO verteile, traut PowerShell diesem ebenso nicht.
Das Interessante dabe ist, dass ich mit der selben Methode ein Zertifikat für die Paketerstellung für WSUS verteilt habe, da funktioniert alles Reibungslos. PowerShell scheint die Zertifikate irgendwie anders zu behandeln. Oder muss ich hier noch etwas genaues beachten?
mfg
Simon
mal wieder ein kleines Problemchen.
Ich bin gerade dabei, PowerShell-Scripte zu schreiben. Funktioniert soweit gut. Diese möchte ich nun gerne signieren und die ExecutionPolicy sämtlicher Systeme auf "AllSigned" stellen. Passt soweit.
Nun ist es so, dass ich ein Zertifikat erstellt und per GPO verteilt habe. Die Clients haben dieses bekommen, es wird auch unter den vertrauenswürdigen Herausgebern angezeigt. Jetzt signiere ich das PowerShell-Script mittels Idera PowerShell Professional Plus. Wenn ich das Script nun aber ausführen möchte, wird angezeigt, dass dem Zertifikat nicht vertraut wird.
Das Ganze habe ich erst in einer VMware-Umgebung getestet, bevor ich es auf dem Produktivsystem genau gleich ausgerollt habe. Unter VMware hat's funktioniert, im Produktivsystem nicht.
Ich weiß zur Zeit auch gar nicht, wo ich beginnen soll, zu suchen.
Wir verwenden Windows Server 2008 R2 und Windows 7 Clients.
Any Tipps?
Update:
Ich habe eben herausgefunden, dass der Unterschied darin lag, dass ich in der Testumgebung direkt das Windows-Eigene Code Signing-Zertifikat verteilt habe. In der Produktivumgebung habe ich dieses Zertifikat dupliziert und dieses dann verteilt. Wenn ich in der Testumgebung das Zertifikat ebenso dupliziere, exportiere und per GPO verteile, traut PowerShell diesem ebenso nicht.
Das Interessante dabe ist, dass ich mit der selben Methode ein Zertifikat für die Paketerstellung für WSUS verteilt habe, da funktioniert alles Reibungslos. PowerShell scheint die Zertifikate irgendwie anders zu behandeln. Oder muss ich hier noch etwas genaues beachten?
mfg
Simon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 213697
Url: https://administrator.de/forum/codesigning-zertifikat-unter-vertrauenswuerdige-herausgeber-powershell-vertraut-trotzdem-nicht-213697.html
Ausgedruckt am: 27.04.2025 um 07:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo Simon,
ist dein Zertifikat selbst erstellt oder von einer offiziellen Stelle(Verisign, etc) ?
Wenn es selbst erstellt ist, ist das Root-Zertifikat der Zertifizierungsstelle auch auf den Clients vorhanden ?
Ansonsten probier mal diese Variante zum signieren:
http://www.hanselman.com/blog/SigningPowerShellScripts.aspx
Grüße Uwe
ist dein Zertifikat selbst erstellt oder von einer offiziellen Stelle(Verisign, etc) ?
Wenn es selbst erstellt ist, ist das Root-Zertifikat der Zertifizierungsstelle auch auf den Clients vorhanden ?
Ansonsten probier mal diese Variante zum signieren:
http://www.hanselman.com/blog/SigningPowerShellScripts.aspx
Grüße Uwe
Hallo Simon,
ich beschäftige mich aktuell mit dem Thema. Ich habe ein Root-Zertifikat (Root.pvk - privat und Root.cer - öffentlich) erstellt und von dem ein neues Zertifikat "abgeleitet", welches dann im Zertifikatsspeicher gelandet ist. Davon habe ich dann wiederum eine öffentliche Zertifikatsdatei (michael.cer) exportiert.
Ziel ist ein Root-Zertifikat zu haben und davon Mitarbeiter-Zertifikate abzuleiten, die dann zum Signieren von Code benutzt werden.
Um einen Test durchzuführen, habe ich auf einem zweiten Rechner Root.cer in den Zertifikatsspeicher "Vertrauenswürdige Stammzertifizierungsstellen" importiert. Auf diesem Rechner 2 habe ich vorher mit erhöhten Rechten "Set-ExecutionPolicy AllSigned" ausgeführt.
Wenn ich nun ein Skript mit meinem Zertiifkat (michael.cer) auf Rechner 1 signiere und dann testweise auf Rechner 2 ausführen möchte, mache ich das im Explorer mit einem rechten Mausklick und die Auswahl "Mit Powershell ausführen".
Dann erscheint die Frage: "Möchten Sie Software dieses nicht vertrauenswürdigen Herausgebers ausführen?" mit unterschiedlichen Antwortoptionen. Wenn ich die Option A (Immer ausführen) auswähle, wird dadurch die Signatur (michael.cer) dem Zertifikatsspeicher (Aktueller Benutzer) hinzugefügt. Wenn ich das Zertifikat dort lösche erscheint beim nächsten Mal wieder die Abfrage.
Es funktioniert auch, wenn ich den Zertifikatsspeicher (Lokaler Computer) wähle, offenbar gibt es einen Unterschied zwischen signiert und vertrauenswürdig.
Es funktioniet übrigens auch nicht, wenn ich Root.cer zu den Vertrauenswürdigen Herausgebern hinzufüge, obwohl die Ausführung des Skriptes nur mit Root.cer in der Vertrauenswürdigen Stammzertifizierungsstelle grundsätzlich gelingt, man wird lediglich gefragt, ob man dem Herausgeber CN=Michael vertraut.
Ich habe ein wenig ausführlicher geschrieben, was ich gemacht habe, weil das möglicherweise noch andere lesen...
Viele Grüße Michael
ich beschäftige mich aktuell mit dem Thema. Ich habe ein Root-Zertifikat (Root.pvk - privat und Root.cer - öffentlich) erstellt und von dem ein neues Zertifikat "abgeleitet", welches dann im Zertifikatsspeicher gelandet ist. Davon habe ich dann wiederum eine öffentliche Zertifikatsdatei (michael.cer) exportiert.
Ziel ist ein Root-Zertifikat zu haben und davon Mitarbeiter-Zertifikate abzuleiten, die dann zum Signieren von Code benutzt werden.
Um einen Test durchzuführen, habe ich auf einem zweiten Rechner Root.cer in den Zertifikatsspeicher "Vertrauenswürdige Stammzertifizierungsstellen" importiert. Auf diesem Rechner 2 habe ich vorher mit erhöhten Rechten "Set-ExecutionPolicy AllSigned" ausgeführt.
Wenn ich nun ein Skript mit meinem Zertiifkat (michael.cer) auf Rechner 1 signiere und dann testweise auf Rechner 2 ausführen möchte, mache ich das im Explorer mit einem rechten Mausklick und die Auswahl "Mit Powershell ausführen".
Dann erscheint die Frage: "Möchten Sie Software dieses nicht vertrauenswürdigen Herausgebers ausführen?" mit unterschiedlichen Antwortoptionen. Wenn ich die Option A (Immer ausführen) auswähle, wird dadurch die Signatur (michael.cer) dem Zertifikatsspeicher (Aktueller Benutzer) hinzugefügt. Wenn ich das Zertifikat dort lösche erscheint beim nächsten Mal wieder die Abfrage.
Es funktioniert auch, wenn ich den Zertifikatsspeicher (Lokaler Computer) wähle, offenbar gibt es einen Unterschied zwischen signiert und vertrauenswürdig.
Es funktioniet übrigens auch nicht, wenn ich Root.cer zu den Vertrauenswürdigen Herausgebern hinzufüge, obwohl die Ausführung des Skriptes nur mit Root.cer in der Vertrauenswürdigen Stammzertifizierungsstelle grundsätzlich gelingt, man wird lediglich gefragt, ob man dem Herausgeber CN=Michael vertraut.
Ich habe ein wenig ausführlicher geschrieben, was ich gemacht habe, weil das möglicherweise noch andere lesen...
Viele Grüße Michael