Announcement

Collapse
No announcement yet.

Signieren einer Assembly unter VS 2005

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Signieren einer Assembly unter VS 2005

    Ich versuche seit Tagen ein Code Signature Certificate unter Visual Studio 2005 Pro SP1 zu installieren. Unter Projekt->Eigenschaften->Signierung werden nur *.pfx- oder *.snk-Dateien akzeptiert. Um eine pfx-Datei ausgehend von meinem Zertifikat zu erzeugen, habe ich folgenden Befehl ausgeführt:

    Code:
    pvk2pfx.exe -pvk mykey2008.pvk -spc mycert2008.spc -pfx mypfx2008.pfx -pi ****** -f
    Darauf hin wurde eine mypfx2008.pfx Datei erzeugt. Diese wählte ich für die Signierung aus und startete den Build-Prozess. Folgender Fehler wird nun angezeigt: "Fehler beim Importieren des Schlüssels - Das Zertifikat und der private Schlüssel für die Entschlüsselung wurden nicht gefunden." Nach einigen Internet-Recherchen fand ich heraus, dass dies deshalb passiert, weil beim Lesen der Daten aus der pfx-Datei alle Zertifikate im Zertifizierungspfad ausgelesen werden und nicht nur mein Code Signing Certificate. Deshalb habe ich anschließend die PFX-Datei nach Eingabe des Passworts für den privaten Schlüssel und Markieren des Schlüssels als exportierbar in den Zertifikat-Speicher importiert. Dann habe ich das Zertifikat wieder als PFX-Datei exportiert und vor allem darauf geachtet, dass der private Schlüssel exportiert und die Option "Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen" ausgeschaltet ist. Nun habe ich eine neue PFX-Datei mypfx2008_fixed.pfx, die ich in Visual Studio 2005 unter Signierung auswähle und einen neuen Build starte. Dieser schlägt aber erneut fehl mit dem Fehler "Fehler beim Importieren des Schlüssels - Das Objekt ist bereits vorhanden".

    Völlig entnervt suche ich deshalb nach Rat. Habt ihr eine Idee, was man da machen könnte?

  • #2
    Hallo,

    möchtest Du nur die Assembly signieren oder benötigst Du ClickOnce als Option ?

    Gruß Oliver

    Comment


    • #3
      Originally posted by Oliver Michalski View Post
      möchtest Du nur die Assembly signieren oder benötigst Du ClickOnce als Option ?
      Beides.

      Nur um Fehldeutungen zu vermeiden: Ich kann jede ausführbare Datei über "signtool sign" signieren (authenticode).

      Was mir nicht gelingt ist: In VS 2005 über Projekt->Eigenschaften->Signierung eine pfx-Datei zu verwenden, die ich via pvk2pfx.exe erstellt habe. Die pfx-Datei ist perfekt gültig, kann problemos in ein Zertifikatspeicher importiert werden, kann aber nicht mit VS 2005 verwendet werden wegen des im OP genannten Fehlers!

      Wenn ich VS eine neue PFX-Datei erstellen lasse, funktioniert alles einwandfrei, zum Fehler kommt es nur, wenn ich kein temporäreres kryptographisches Schlüsselpaar verwenden möchte, sondern das Schlüsselpaar aus meinem Zertifikat.

      Weißt Du vielleicht, ob dieses Vorgehen überhaupt möglich ist?

      Comment


      • #4
        Das Problem ist gelöst. Beim Erstellen des Schlüsselpaars während des Enrollments wurde der Schlüsselcontainer mit einer falschen KeySpec versehen.

        Habt ihr gewußt, dass die neue Version von CertUtil, die mit Windows 2003 Server SP1 bzw. Windows Vista ausgeliefert wird, neue Kommandozeilen-Optionen enthält? Unter anderem kann man damit das Schlüsselpaar in einen neuen Container "umziehen", den man dann nach Belieben mit AT_KEYEXCHANGE oder AT_SIGNATURE markieren kann.

        Details dazu findet man hier:
        http://blogs.msdn.com/andrekl/archiv...signature.aspx

        Comment

        Working...
        X