AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Setup.exe signieren mit Stamm-CA

Ein Thema von TiGü · begonnen am 10. Nov 2020 · letzter Beitrag vom 11. Nov 2020
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#1

Setup.exe signieren mit Stamm-CA

  Alt 10. Nov 2020, 14:56
Vorab:
Ich habe mir dieses Video von generic angesehen:
https://www.youtube.com/watch?v=UhhaNX2zQwY

Darin beschreibt er, wie man sich lokal ein Zertifikat erzeugt und das auf seine Setup.exe anwendet.

Er reißt auch kurz an, dass man das mit dem Stammzertifikat der Firmen-Domäne machen könnte.
Jetzt wäre meine Frage: Wie geht das?

Unter Systemsteuerung -> Benutzerzertifikate verwalten -> Zertifkate - Aktueller Benutzer -> Vertrauenswürdige Stammzertifikate -> Zertifikate habe ich eine Auflistung ganz vieler Zertifikate.
Darunter ist auch eines das Ausgestellt für und Ausgestellt von "Firmenname-rootCA" als Eintrag hat (ja, Firmenname ist jetzt hier nur der Platzhalter).

Ist dies das im Video angesprochene CA-Ding und wie kann ich damit selbsterzeugte Setup.exe-Dateien signieren, damit die hier in der Windows-Domäne als signiert angezeigt werden?
Ich kann das nur als CER- oder P7B-Datei exportieren. PFX ist bei mir disabled.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Setup.exe signieren mit Stamm-CA

  Alt 10. Nov 2020, 15:17
Die CA ist notwendig, damit die Signaturen überprüft werden können.
Das Entwickler-Zertifikat wurde ja von der CA ausgestellt.
Daher ist es auch notwendig, dass überall wo die Signatur überprüft wird, auch die CA im Zertifikatsspeicher ist.

Wenn du eine Domäne betreibst, nimm die CA von der Domäne und erzeuge dir dort ein Zertifikat.
Die CA ist auf allen Rechner bekannt, dann hast du kein Ärger mit dem Verteilen der CA-Zertifikate.

Wenn nicht kannst du per GPO das Zertifikat verteilen.

Quelle:
https://support.securly.com/hc/en-us...Directory-GPO-

Siehe - ANSTELLE VON PUNKT 1) in der Webseite nimm bitte DEIN Zertifikat. NICHTS RUNTERLADEN!
  • Open Administrative Tools, and then click "Group Policy Management".
  • In the console tree, under the top level of the domain, right-click and create a new policy and title it Securly Certificate.
  • Double-click Group Policy Objects in the domain containing the Securly Certificate Group Policy object (GPO) that you want to edit.
  • In the Group Policy Management Console (GPMC), go to "Computer Configuration > Windows Settings > Security Settings > Public Key Policies".
  • Right-click the Trusted Root Certification Authorities store.
  • Click Import and follow the steps in the Certificate Import Wizard to import the downloaded certificate.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Setup.exe signieren mit Stamm-CA

  Alt 10. Nov 2020, 15:27
Aha, verstehe. Vielen Dank. Als ersten Schritt dann also per CMD:
Code:
makecert -r -pe -n "CN=Firmenname-rootCA" -ss CA -sr CurrentUser -a sha256 -cy authority -sky signature -sv "D:\cert\MyCA.pvk" "D:\cert\MyCA.cer"
Das hat schon mal gut funktioniert. MyCA.cer und MyCA.pvk wurden erzeugt.
Ich kämpf mich mal weiter durch.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Setup.exe signieren mit Stamm-CA

  Alt 10. Nov 2020, 15:47
Das habe ich alles gemacht. Mit Ausgaben aus der Konsole.

Code:
makecert -r -pe -n "CN=Firmenname-rootCA" -ss CA -sr CurrentUser -a sha256 -cy authority -sky signature -sv "D:\cert\MyCA.pvk" "D:\cert\MyCA.cer"

Succeeded

makecert -pe -n "CN=Firmenname-rootCA" -a sha256 -cy end -sky signature -ic "D:\cert\MyCA.cer" -iv "D:\cert\MyCA.pvk" -sv "D:\cert\MySPC.pvk" "D:\cert\MySPC.cer"

Succeeded

::pvk2pfx ist bei mir nicht in PATH, darum das dahinwechseln per cd
cd C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64 

pvk2pfx.exe -pvk "D:\cert\MySPC.pvk" -spc "D:\cert\MySPC.cer" -pfx "D:\cert\MySPC.pfx"

signtool sign /v /f "D:\cert\MySPC.pfx" /t http://timestamp.comodoca.com "D:\cert\Setup.exe"

The following certificate was selected:
    Issued to: Firmenname-rootCA
    Issued by: Firmenname-rootCA
    Expires:  Sun Jan 01 00:59:59 2040
    SHA1 hash: 9A02F7F5BD565E0A4536A70051434F274B8501D5

Done Adding Additional Store
Successfully signed: D:\cert\Setup.exe

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
Die damit behandelte Setup.exe ist auch ca. 6 KB größer, als eine Kopie davon ohne Signatur.
Ich habe auch ein "Digitale Signaturen"-Tab in den Dateieigenschaften, wo ich den Namen des "Firmenname-rootCA" wiederfinde.

Jedoch sagt meine UAC weiterhin gelb und Herausgeber: Unbekannt

Hätte ich das Zertifikat wieder Windows bekannt machen müssen, so wie du es in Minute 3:30 ansprichst?
Weil das Stammzertifikat ja doch da schon zu finden ist, habe ich diesen Schritt ausgelassen.

Das ist so ein umfangreiches und komplexes Thema. Sich da schlau zu machen und einzulesen ist nicht ohne.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Setup.exe signieren mit Stamm-CA

  Alt 10. Nov 2020, 16:08
signtool sign /v /f "D:\cert\MySPC.pfx" /t http://timestamp.comodoca.com "D:\cert\Setup.exe"

The following certificate was selected:
Issued to: Firmenname-rootCA
Issued by: Firmenname-rootCA
Expires: Sun Jan 01 00:59:59 2040
SHA1 hash: 9A02F7F5BD565E0A4536A70051434F274B8501D5

Done Adding Additional Store
Successfully signed: D:\cert\Setup.exe

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0[/CODE]

Die damit behandelte Setup.exe ist auch ca. 6 KB größer, als eine Kopie davon ohne Signatur.
Ich habe auch ein "Digitale Signaturen"-Tab in den Dateieigenschaften, wo ich den Namen des "Firmenname-rootCA" wiederfinde.

Jedoch sagt meine UAC weiterhin gelb und Herausgeber: Unbekannt

Hätte ich das Zertifikat wieder Windows bekannt machen müssen, so wie du es in Minute 3:30 ansprichst?
Weil das Stammzertifikat ja doch da schon zu finden ist, habe ich diesen Schritt ausgelassen.

Das ist so ein umfangreiches und komplexes Thema. Sich da schlau zu machen und einzulesen ist nicht ohne.
Beim zweiten MakeCert solltest du den Namen ändern, damit man die CA vom Entwickler-Zert auseinander halten kann. Dann siehst du auch in den Eigenschaften das Entwickler Zert. Die ROOT siehst du nur in tieferen Dialogen z.B. im Zert-Baum.

Ansonsten sieht das ganz gut aus.

Das UAC ist deshalb Gelb, weil die CA nicht in den vertrauenswürdigen CAs ist.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Setup.exe signieren mit Stamm-CA

  Alt 10. Nov 2020, 17:05
Zitat:
Das UAC ist deshalb Gelb, weil die CA nicht in den vertrauenswürdigen CAs ist.
Hm, aber das ursprüngliche "Firmenname-rootCA" stammt ja aus "Vertrauenswürdige Stammzertifizerungsstellen"?!

Kann ich denn mit dem was ich habe, also einen firmenweit per Active Directory (Windows-Domäne) bekannten CA, überhaupt unsere internen Setup.exe-Dateien so signieren, dass es blau wird und ohne Herausgeber: Unbekannt?

Oder muss ich unseren Admin bitten, ein daraus erstelltes Entwicklerzertifikat per Gruppenrichtlinie zu verteilen?

Oder geht das so gar nicht und man kommt um so ein externes Drittanbieter-Zertifikat gegen Geld nicht drum rum?
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Setup.exe signieren mit Stamm-CA

  Alt 11. Nov 2020, 13:18
Die RootCA (publickey) MUSS auf allen Rechnern installiert sein, wo das UAC aufpoppt.

Das Zert. für die Signierung muss nirgends hin und kann bei dem Entwickler bleiben.
Niemand anderes braucht irgendetwas von dem Zertifikat.
Das was benötigt wird, ist in der Signatur an der Exe enthalten. Da steht z.B. drin, wer das Zert für den Entwickler ausgestellt hat.
Genau das ist ja die CA und daher kann ein PC die Signatur prüfen, weil die CA bekannt ist (sein sollte).


Wenn du Windows AD einsetzt, dann kannst du dort auch eine CA erstellen bzw. Zertifikate erstellen (ohne makecert.exe). Dann hast weniger Ärger/Aufwand.

Du kannst auch ohne AD-CA die "makecert.exe" Zertifikate via GPO auf alle Clients verteilen.
Setzt aber AD vorraus - lose Client ohne Domänen Mitgliedschaft müssen per Hand mit dem public key der CA versorgt werden.



Ja, du bekommst das Blau wie im Video, wenn die CA bekannt ist.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Setup.exe signieren mit Stamm-CA

  Alt 11. Nov 2020, 14:19
Okay, das klingt ja alles logisch und einleuchtend und ich danke dir auch sehr für deine Mühen.
Ich habe es heute nicht nochmal neu probiert, vielleicht war ja gestern auch der Wurm drin.
Ich probiere es gleich nochmal.

Anbei nochmal ein Screenshot, der für jeden Domänen-Account (ok, ich habe nur zwei überprüft) gleich ist.

zertifikat.jpg

Das heißt, jeder Domänen-Account kennt das Firmenname-rootCA, aka den Public-Key.
Nach deiner Aussage müsste das ja so reichen, wenn ich die Schritte aus dem Video genauso wiederhole. Richtig?
Natürlich anstatt mit "CN=Coding BOTT CA" steht dann bei mir im ersten Schritt für makecert "CN=Firmenname-rootCA".

Geändert von TiGü (11. Nov 2020 um 14:25 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz