Java-code-ondertekening Een CSR genereren

Met ingang van januari 2014 zijn voor alle Java-apps die worden uitgevoerd in webbrowsers, certificaten voor ondertekening van programmacode vereist. Nadat je een certificaat voor ondertekening van programmacode hebt aangeschaft, moet je je Java-code ondertekenen.

Er zijn verscheidene hulpprogramma's vereist voor het inpakken en ondertekenen van Java-code, waaronder keytool, jar en jarsigner. Vanaf JDK 5.0, is jarsigner in staat tot het genereren van handtekeningen die een tijdstempel bevatten, zodat kan worden gecontroleerd of het JAR-bestand is ondertekend toen het certificaat voor het ondertekenen van programmacode nog geldig was.

Methode 1 – Een nieuw certificaat voor het ondertekenen van programmacode aanvragen

  1. Download, indien nodig, JDK via de volgende koppeling:
    http://java.sun.com/javase/downloads/index.jsp
  2. Vraag een certificaat voor het ondertekenen van programmacode aan via GoDaddy.
    • Maak een nieuw sleutelarchief. Een sleutelarchief is een locatie waarop veilige certificaten worden opgeslagen. In dit voorbeeld wordt er een aangepast sleutelarchief met de naam codesignstore gemaakt dat alleen wordt gebruikt voor certificaten voor het ondertekenen van programmacode en de daaraan gekoppelde privésleutel.
      keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=weergavenaam,O=bedrijfsnaam,C=US,ST=staat,L=plaats" -keystore codesignstore -storepass
    • Maak een CSR (Certificate Signing Request). Er wordt een privésleutel gemaakt en opgeslagen in het sleutelarchief met de naam codesignstore. Er wordt CSR-bestand met de naam mycsr.pem gemaakt in de huidige werkmap.
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • Koop een certificaat voor het ondertekenen van programmacode.
    • Klik op het tegoed voor het aangeschafte certificaat in Mijn account. Dit leidt ertoe dat je wordt omgeleid naar de webtoepassing GoDaddy Secure Certificate Services Account Management. De methode voor het genereren van CSR's moet op het aanvraagformulier zijn ingesteld op handmatig omdat het CSR-veld anders niet wordt weergegeven.
    • Verzend het CSR als onderdeel van de ondertekeningsaanvraag voor programmacode.
      • Kopieer en plak, nadat dat je het bestand mycsr.pem hebt geopend in een editor, de gehele inhoud van het bestand (waaronder de regels met "BEGIN NEW CERTIFICATE REQUEST" en "END NEW CERTIFICATE REQUEST") in het toepasselijke gedeelte van het aanvraagformulier voor het ondertekenen van programmacode.
    • De bedrijfsinformatie die je hebt opgegeven, wordt gecontroleerd. De registratie-instantie neemt mogelijk contact op voor aanvullende informatie, indien nodig.
    • Als het certificaat voor het ondertekenen van programmacode eenmaal is verstrekt, ontvang je een e-mailbericht met een koppeling voor het downloaden van het certificaatbestand en eventuele daaraan gekoppelde tussenliggende certificaten.
  3. Installeer het certificaat voor het ondertekenen van programmacode in hetzelfde sleutelarchief dat je hiervoor hebt gemaakt. In het volgende voorbeeld wordt ervan uitgegaan dat het bestand met het certificaat voor het ondertekenen van programmacode de naam "mycert.cer" draagt. Er wordt aangenomen dat het certificaatbestand zich in de huidige werkmap bevindt en de PKCS#7-indeling heeft.
    keytool -import -trustcacerts -keystore codesignstore -storepass -alias codesigncert -file mycert.cer
  4. Ondertekenen met het JAR-bestand, jarsigner, het certificaat voor het ondertekenen van programmacode en de privésleutel
    jarsigner -verbose -keystore codesignstore -storepass -keypass myapp.jar codesigncert
    • Codesignstore is een alias voor het sleutelarchief waarin het certificaat voor het ondertekenen van programmacode, de privésleutel en alle andere certificaten in de keten worden bewaard.
    • Het ongetekende invoerbestand is myapp.jar en wordt overschreven door de ondertekende versie van het bestand. Gebruik de opdrachtregeloptie -signedjar om afzonderlijke invoer- en uitvoernamen op te geven.
    • Codesigncert is een alias voor de privésleutel in het sleutelarchief.
    In het volgende voorbeeld wordt er een tijdstempel toegevoegd aan het voorbeeld dat hiervoor is weergegeven:
    jarsigner -verbose -keystore codesignstore -storepass -keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. Controleer het ondertekende JAR-bestand
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribueer de code

Methode 2 – Gebruik het bestaande PKCS#12-bestand dat zowel het certificaat voor ondertekening van programmacode als de privésleutel bevat

  1. Download, indien nodig, JDK via de volgende koppeling:
    http://java.sun.com/javase/downloads/index.jsp
  2. Controleer of het PFX/P12-bestand kan worden gebruikt met jarsigner. Voer de volgende opdracht uit. De aliasnaam die is vereist in stap 5, wordt boven aan de uitvoer weergegeven:
    keytool -list -storetype pkcs12 -keystore mycert.pfx -v
  3. Maak een JAR-bestand van de Java-klassebestanden met het hulpmiddel jar:
    jar cvf myapp.jar myapp.class
  4. Onderteken het JAR-bestand met jarsigner, het certificaat voor ondertekening van programmacode en de privésleutel:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
    • mijncert.pfx is het volledige pad naar het PFX/P12-bestand dat het certificaat voor ondertekening van programmacode bevat en de privésleutel Het bestand dient ook alle tussenliggende certificaten te bevatten.
    • De optie aliasnaam wordt weergegeven in de uitvoer bij stap 2. De naam bevindt zich ergens bijna boven aan het bestand. Als het PFX/P12-bestand is geëxporteerd vanuit Windows, zal de aliasnaam een GUID zijn.
    • Voer, wanneer dat wordt gevraagd, het wachtwoord in dat is ingesteld voor de privésleutel in het PFX/P12-bestand. Je kunt ook de optie -storepass opnemen om het wachtwoord op te geven vanaf de opdrachtregel.
    • Het ongetekende invoerbestand is myapp.jar en wordt overschreven door de ondertekende versie van het bestand. Gebruik de opdrachtregeloptie -signedjar om afzonderlijke invoer- en uitvoernamen op te geven.
    In het volgende voorbeeld wordt er een tijdstempel toegevoegd aan het voorbeeld dat hiervoor is weergegeven:
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasnaam"
  5. Controleer het ondertekende JAR-bestand
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribueer de code

Koppelingen


Was dit artikel nuttig?
Bedankt voor je feedback
Fijn dat we konden helpen! Kunnen we nog iets voor je doen?
Dat spijt ons. Hoe kunnen we je beter helpen?