2008-10-31 19 views
109

Ich habe eine EXE Datei, die ich signieren möchte, damit Windows den Endbenutzer nicht vor einer Anwendung von einem "unbekannten Herausgeber" warnt. Ich bin kein Windows-Entwickler. Bei der betreffenden Anwendung handelt es sich um einen Bildschirmschoner, der aus einer Anwendung generiert wird, die Bildschirmschoneranwendungen generiert. Daher habe ich keinen Einfluss darauf, wie die Datei generiert wird.Eine Windows EXE-Datei signieren

Ich habe bereits herausgefunden, dass ich ein code signing Zertifikat von einem CA wie Verisign oder instantssl.com benötigen werde. 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 hat mich weiter gebracht, aber signtool möchte, dass ich jedes Zertifikat angeben muss. Kann ich irgendwie ein kostenloses Codesignaturzertifikat bekommen, um zu testen, ob das überhaupt funktioniert?

Bitte geben Sie auch an, welche Zertifikatsart die richtige ist. Die meisten Websites erwähnen nur "Code Signing" und sprechen über das Signieren von Anwendungen, die tatsächlich vom Benutzer kompiliert werden. Dies ist nicht der Fall für mich.

+0

Nur neugierig (Ihr Zeichen zu Ihren App hinzufügen) - wie viel man zu zahlen hat, um ein Zertifikat zu kaufen? – Ampere

Antwort

82

können Sie versuchen, Microsoft's Sign Tool

mit Sie laden Sie es als Teil des Windows SDK für Windows Server 2008 und .NET 3.5. Einmal heruntergeladen Sie es von der Befehlszeile wie so verwenden können:

Signtool Zeichen/a myfile.exe

Dies schließt eine einzige ausführbare Datei. Ich bin mir nicht sicher, welches Zertifikat es verwendet.

Oder Sie können versuchen:

Signtool signwizard

Dies wird ein Assistent gestartet, der Sie durch die Unterzeichnung Ihrer Anwendung laufen wird.


Wenn Sie einen halten Zertifikat erhalten möchten, dass Sie Ihren Prozess Sie das .NET-Tool die ausführbare Datei der Unterzeichnung MakeCert können testen können.

Certificate Creation Tool (Makecert.exe)

Sobald Sie Ihr eigenes Zertifikat erstellt haben und verwendet haben es die ausführbare Datei zu unterzeichnen, müssen Sie manuell es als Trusted für Ihre Maschine für UAC um Root CA fügen Sie den Benutzer zu sagen, Führen Sie es aus, dass es von einer vertrauenswürdigen Quelle stammt. Wichtig.Installing a certificate as ROOT CA will endanger your users privacy. Look what happened with DELL. können Sie weitere Informationen finden dies in Code sowohl für die Erfüllung und über die Windows-in:

Hoffentlich, dass einige mehr bietet Informationen für jeden, der das versucht!

+0

Ein Arbeitsablauf in einer separaten Frage: http://stackoverflow.com/questions/84847/how-do-i-create-a-self-signed-certificate-for-code-sign-on-windows –

+2

"Dieses Tool wird automatisch mit Visual Studio installiert. Um das Tool auszuführen, verwenden Sie die Entwicklerbefehlseingabeaufforderung (oder die Visual Studio-Eingabeaufforderung in Windows 7). " http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.110).aspx – Westy92

17

Das ASP-Magazin ASPects hat eine detaillierte Beschreibung, wie Code zu unterzeichnen (Sie müssen ein Mitglied sein, um den Artikel zu lesen). Sie können es herunterladen http://www.asp-shareware.org/

Hier ist der Link zu einer Beschreibung, wie Sie make your own test certificate.

This könnte auch interessant sein.

+7

Nachtrag vier Jahre später: Comodo wurde irgendwann im Frühjahr 2012 kompromittiert (http://blogs.comodo.com/it-security/data-security/the-recent-ra-compromise/) und so lehnen viele Benutzeragenten ab Zertifikate mit einer Comodo-Root-Berechtigung –

+7

Ist Comodo Mitte 2013 immer noch eine riskante Wette, und von "User Agents" bedeutet das Microsoft/Windows, da sie bestimmt entscheiden, ob sie die berüchtigte "unbekannter Publisher" -Nachricht anzeigen sollen. –

+0

Entschuldigung, die expliziten Service-Empfehlungen wurden entfernt, die 1) veraltet sind und 2) jetzt off-topic ausgeschlossen wurden (weil 1.). – deceze

17

Sie können ein frei billiges Codesignaturzertifikat from Certum erhalten, wenn Sie Open-Source-Entwicklung machen.

Ich verwende ihr Zertifikat seit über einem Jahr, und es wird die unbekannte Publisher-Nachricht von Windows los.

Soweit Unterzeichnung Code verwende ich signtool.exe aus einem Skript wie folgt aus:

signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe 
+2

Es sieht nicht mehr frei, immer noch viel billiger, € 14 – hultqvist

+1

Sie haben recht, es sieht nicht mehr frei. fwiw Ich habe gerade erneuert, und ich habe nichts bezahlt. Vielleicht bin ich schon Großvater. Vielleicht sind ihre inneren Prozesse kaputt. Ihre Website ist sicher kompliziert. –

9

Eine weitere Option, wenn Sie die ausführbare Datei signieren müssen auf eine Linux-Box Signcode vom Mono project tools zu verwenden ist. Es ist supported on Ubuntu.

+0

Das ist sehr hilfreich! Das Paket ist auch in Debian unter dem Namen [mono-devel] (https://packages.debian.org/wheezy/mono-devel) verfügbar. – Marian

Verwandte Themen