Visual Studio 2005 - Code Signing Certificate with KeySpec=1 kan niet gebruikt worden

De volgende error verschijnt:

"Object already exists" (Title: "Error during Import of the Keyset")

Deze error is veroorzaakt doordat tijdens het creëren van de private key en de CSR de KeySpec parameter (incorrect) op de waarde AT_KEYEXCHANGE (1) is gezet. Deze waarde moet naar AT_SIGNATURE (2) worden gewijzigd.

Wijzigen met CertUtil

Gebruikmakend van CertUtil (Windows Server 2003 SP1 of hoger) kunt u KeySpec aanpassen als u een .pfx bestand importeert. De te nemen stappen zijn:

  1. Gebruik het MMC om het certificaat uit de Windows Certificate Store te exporteren met de bestaande (KeySpec=1) keyset naar een .pfx-bestand.Let op: Maak een backup van dit bestand op een veilige locatie en test of het .pfx-bestand correct kan worden geïmporteerd voordat u verder gaat.
  2. Verwijder het bestaande certificaat uit de Windows Certificate Store (met behulp van het MMC).
  3. Open als Administrator een command prompt (CMD.exe)
  4. Importeer het .pfx-bestand met het onderstaande commando:

    certutil -importPFX -user "pfxfilename" AT_SIGNATURE
        sn -i "certificaat.pfx" VS_KEY_(randomnumber)

    Let op:
    ([willekeurig getal]) wordt getoond in de errorlist van visual studio

  5. Voer het wachtwoord in voor de pfx als er om gevraagd wordt.
  6. De keyset/Cert zou nu de waarde KeySpec=2 moeten hebben. Mocht het nodig zijn dan kan het sleutelpaar geëxporteerd worden naar een ander .pfx-bestand, wederom gebruikmakend van het MMC

Wijzigen met OpenSSL

Als bovenstaande niet werkt kunt u ook gebruik maken van OpenSSL om het .pfx-bestand expliciet in te stellen voor key signing. Het in te voeren commando is dan:

openssl pkcs12 -export -out uw_pfx_bestand.pfx -keysig -inkey Key.pvk -in uwcertificaat.spc

(Alleen als u beschikt over de de .spc- en .pvk-bestanden).

OF

openssl pkcs12 -in uw_pfx_bestand.pfx -out backup_pfx_bestandsnaam.key

(Dit zorgt ervoor dat u niet het bestaande .pfx bestand overschrijft).
openssl pkcs12 -export -out uw_nieuwe_pfx_bestand.pfx -keysig -in backup_pfx_bestandsnaam.key (Markeer .pfx voor Key Signing).

point up