Ich habe eine EXE- Datei, die ich signieren möchte, damit Windows den Endbenutzer nicht vor einer Anwendung eines "unbekannten Herausgebers" warnt. Ich bin kein Windows-Entwickler. Die betreffende Anwendung ist ein Bildschirmschoner, der aus einer Anwendung generiert wird, die Bildschirmschoneranwendungen generiert. Als solches habe ich keinen Einfluss darauf, wie die Datei generiert wird.
Ich habe bereits herausgefunden, dass ich einen brauchen Codesignatur - Zertifikat von einer CA wie Verisign oder instantssl.com. Was ich nicht verstehe, ist, was ich tun muss (wenn überhaupt möglich), um meine EXE-Datei zu signieren. Was ist eine einfache Erklärung?
Die Antwort von Mel Green brachte mich weiter, aber signtool möchte, dass ich spezifiziere, welches Zertifikat auf jeden Fall verwendet werden soll. Kann ich irgendwie ein kostenloses Code-Signatur-Zertifikat erhalten, um zu testen, ob dies überhaupt für mich funktioniert?
Bitte geben Sie auch an, welche Zertifikatart die richtige ist. Die meisten Websites erwähnen nur "Codesignatur" und sprechen über das Signieren von Anwendungen, die tatsächlich vom Benutzer kompiliert werden. Dies ist bei mir nicht der Fall.
quelle
Antworten:
Sie können versuchen, das Microsoft Sign Tool zu verwenden
Sie laden es als Teil des Windows SDK für Windows Server 2008 und .NET 3.5 herunter. Nach dem Herunterladen können Sie es wie folgt über die Befehlszeile verwenden:
Dies signiert eine einzelne ausführbare Datei mit dem "besten verfügbaren Zertifikat". (Wenn Sie kein Zertifikat haben, wird eine SignTool-Fehlermeldung angezeigt.)
Oder Sie können versuchen:
Dadurch wird ein Assistent gestartet, der Sie durch das Signieren Ihrer Anwendung führt. (Diese Option ist nach Windows SDK 7.0 nicht mehr verfügbar.)
Wenn Sie ein Zertifikat erhalten möchten , mit dem Sie den Prozess des Signierens der ausführbaren Datei testen können, können Sie das .NET-Tool Makecert verwenden .
Tool zum Erstellen von Zertifikaten (Makecert.exe)
Nachdem Sie Ihr eigenes Zertifikat erstellt und es zum Signieren Ihrer ausführbaren Datei verwendet haben, müssen Sie es manuell als vertrauenswürdige Stammzertifizierungsstelle für Ihren Computer hinzufügen, damit die Benutzerkontensteuerung dem Benutzer, der es ausführt , mitteilt, dass es von einer vertrauenswürdigen Quelle stammt. Wichtig . Das Installieren eines Zertifikats als ROOT CA gefährdet die Privatsphäre Ihrer Benutzer. Schau, was mit DELL passiert ist. Weitere Informationen dazu finden Sie sowohl im Code als auch über Windows unter:
Frage zum Stapelüberlauf Installieren Sie Zertifikate im Windows Local User Certificate Store in C #
Installieren eines selbstsignierten Zertifikats als vertrauenswürdige Stammzertifizierungsstelle in Windows Vista
Hoffentlich bietet das mehr Informationen für jeden, der dies versucht!
quelle
Ich hatte das gleiche Szenario in meinem Job und hier sind unsere Ergebnisse
Als erstes müssen Sie das Zertifikat abrufen und auf Ihrem Computer installieren. Sie können entweder eines von einer Zertifizierungsstelle kaufen oder eines mit makecert erstellen .
Hier sind die Vor- und Nachteile der beiden Optionen
Kaufen Sie ein Zertifikat
Generieren Sie ein Zertifikat mit Makecert
Signieren Sie die ausführbare Datei
Es gibt zwei Möglichkeiten, die gewünschte Datei zu signieren:
Verwenden eines auf dem Computer installierten Zertifikats
signtool.exe sign / a / s MY / sha1 sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v "C: \ filename.dll"
Verwenden einer Zertifikatdatei
signtool sign / tr http://timestamp.digicert.com / td sha256 / fd sha256 / f "c: \ Pfad \ zu \ mycert.pfx" / p pfxpassword "c: \ Pfad \ zu \ file.exe"
Testen Sie Ihre Unterschrift
Methode 1: Verwenden von signtool
Gehen Sie zu: Start> Typ CMD ausführen> Klicken Sie auf OK. Geben Sie an der Eingabeaufforderung das Verzeichnis ein, in dem signtool vorhanden ist. Führen Sie Folgendes aus:
signtool.exe verify / pa / v "C: \ Dateiname.dll"
Methode 2: Verwenden von Windows
Klicken Sie mit der rechten Maustaste auf die signierte Datei. Eigenschaften auswählen Wählen Sie die Registerkarte Digitale Signaturen. Die Signatur wird im Abschnitt Signaturliste angezeigt.
Ich hoffe das könnte dir helfen
Quellen:
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms537361(v=vs.85)
https://www.digicert.com/code-signing/signcode-signtool-command-line.htm
https://knowledge.symantec.com/support/code-signing-support/index?page=content&id=SO15544&actp=search&viewlocale=de_DE
https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx
quelle
Sie können ein
kostenloses,günstiges Code-Signatur-Zertifikat von Certum erhalten, wenn Sie Open Source entwickeln.Ich verwende ihr Zertifikat seit über einem Jahr und es entfernt die unbekannte Publisher-Nachricht von Windows.
Zum Signieren von Code verwende ich signtool.exe aus einem Skript wie diesem:
quelle
Das ASP-Magazin ASPects enthält eine detaillierte Beschreibung zum Signieren von Code (Sie müssen Mitglied sein, um den Artikel lesen zu können). Sie können es über http://www.asp-shareware.org/ herunterladen.
Hier ist ein Link zu einer Beschreibung, wie Sie Ihr eigenes Testzertifikat erstellen können .
Das könnte auch interessant sein.
quelle
Eine weitere Option, wenn Sie die ausführbare Datei auf einer Linux-Box signieren müssen, ist die Verwendung des Signcodes aus den Mono-Projekttools . Es wird unter Ubuntu unterstützt .
quelle
Referenz https://steward-fu.github.io/website/driver/wdm/self_sign.htm Hinweis: signtool.exe aus dem Microsoft SDK
1. Zum ersten Mal (um ein privates Zertifikat zu machen)
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -add YourName.cer -s -r localMachine root
2.Nachher (um Ihr Zeichen zu Ihrer App hinzuzufügen)
signtool sign / s YourName YourApp.exe
quelle
Und noch eine weitere Option: Wenn Sie unter Windows 10 entwickeln, aber Microsoft signtool.exe nicht installiert haben, können Sie Ihre App mit Bash unter Ubuntu unter Windows signieren. Hier ist ein heruntergekommener:
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
quelle
osslsigncode
ist auch unter verfügbar.cygwin
Wenn Sie dies also bereits verwenden (wie ich), können Sie sich in Ihrer aktuellen Umgebung anmelden, anstatt zur WSL wechseln zu müssen.Verwenden Sie den folgenden Link, um die EXE-Datei (Setup / Installer) zu signieren (Exe- / Setup-Datei ohne Verwendung des Microsoft-Setup-Signtools signieren).
https://ebourg.github.io/jsign/#files
Beispielbefehl java -jar jsign-2.0.jar --keystore keystore.jks "--alias alias --storepass password MyInstaller.exe
Arbeitete für mich :)
quelle
Dies ist keine direkte Antwort auf die Frage, aber sie ist eng miteinander verbunden (und ich hoffe, sie ist nützlich), da früher oder später ein Programmierer seine Hand in die Brieftasche gesteckt hat:
Also, Preise für EV-Signatur:
1 Jahr $ 350 + ($ 50 versteckte Gebühr)
2 Jahr $ 600
3 Jahr $ 750
[www.ksoftware.net] [3]
eToken wird als USB-Stick gesendet. Kein Leser benötigt.
Sie kaufen tatsächlich bei Comodo (Sectigo)
1 Jahr 350 Euro
3 Jahr 799 Euro
sklep.certum.pl
1 Jahr $ 499 USD
3 Jahr $ 897 USD
sectigo.com
1 Jahr $ 410 insgesamt
2 Jahre $ 760 insgesamt
3 Jahre $ 950 insgesamt
www.globalsign.com
1 Jahr: 600 USD (es waren 104 USD)
3 Jahr :?
www.digicert.com
1 Jahr: $ 700
3 Jahre: lächerlich teuer
[ https://trustcenter.websecurity.symantec.com/]
Weitere Preise finden Sie hier:
https://cheapsslsecurity.com/sslproducts/codesigningcertificate.html
Siehe auch den von Erick Castrillo hinzugefügten Link: cheapsslsecurity.com/sslproducts/codesigningcertificate.html
quelle