Firma di codice Java – Generazione di una richiesta di firma certificato (CSR)

A partire da gennaio 2014, tutte le app Java eseguite all'interno di browser Web richiedono certificati di firma dei codici. Dopo che hai acquistato un certificato di firma del codice, devi procedere alla firma del codice Java.

Per confezionare e firmare codice Java sono necessari diversi strumenti, inclusi keytool, jar e jarsigner. A partire da JDK 5.0, jarsigner è in grado di generare firme che includono un indicatore di data/ora che certifica che il file JAR è stato firmato quando il certificato di firma del codice era ancora valido.

Approccio 1 – Richiesta di un nuovo certificato di firma del codice

  1. Se necessario, scarica JDK dal collegamento seguente:
    http://java.sun.com/javase/downloads/index.jsp
  2. Richiedi un certificato di firma del codice a GoDaddy.
    • Crea un nuovo archivio chiavi. L'archivio chiavi è un luogo dove vengono conservati i certificati sicuri. In questo esempio verrà creato un archivio chiavi personalizzato denominato ""codesignstore" da usare solo per il certificato di firma del codice e per la chiave privata associata.
      keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass
    • Crea una richiesta di firma del certificato (CSR). Una chiave privata verrà creata e memorizzata nell'archivio chiavi denominato "codesignstore". Un file di richiesta di firma del certificato denominato "mycsr.pem" verrà creato nella directory di lavoro corrente.
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • Acquista un certificato di firma del codice.
    • Fai clic sul credito del certificato di firma del codice acquistato in "Mio account". Viene aperta l'applicazione Web Gestione account Servizi di certificazione sicura di GoDaddy. Il metodo di generazione della CSR deve essere impostato su manuale nel modulo di richiesta, in modo che il campo CSR sia visibile.
    • Invia la CSR come previsto dalla procedura di richiesta di firma del codice.
      • Dopo aver aperto il file "mycsr.pem" in un editor, copia e incolla l'intero contenuto (incluse le righe contenenti "INIZIO NUOVA RICHIESTA CERTIFICATO" e "FINE NUOVA RICHIESTA CERTIFICATO") nella sezione appropriata del modulo di richiesta di firma del codice.
    • Le informazioni sull'azienda che hai fornito verranno verificate. Se necessario, l'Autorità di registrazione (Registration Authority, RA) ti contatterà per ottenere maggiori dettagli.
    • Una volta che il certificato di firma del codice è stato emesso, riceverai un messaggio email con un collegamento per scaricare il file del certificato ed eventuali certificati intermedi associati.
  3. Installa il certificato di firma del codice nello stesso archivio chiavi creato in precedenza. Nel seguente esempio il file del certificato di firma del codice si chiama "mycert.cer". Il file del certificato deve essere nella cartella di lavoro corrente e nel formato PKCS#7.
    keytool -import -trustcacerts -keystore codesignstore -storepass -alias codesigncert -file mycert.cer
  4. Firma il file JAR mediante jarsigner, utilizzando il certificato di firma del codice e la chiave privata.
    jarsigner -verbose -keystore codesignstore -storepass -keypass myapp.jar codesigncert
    • "codesignstore" è un alias dell'archivio chiavi che contiene il certificato di firma del codice, la chiave privata e tutti gli altri certificati collegati.
    • Il file di input non firmato è "myapp.jar" e verrà sovrascritto con la versione firmata del file. Usa l'opzione della riga di comando "-signedjar" per specificare dei nomi di file di input e di output distinti.
    • "codesigncert" è un alias della chiave privata contenuta nell'archivio chiavi.
    Nell'esempio seguente vengono aggiunte le opzioni di indicazione di data e ora allo stesso esempio presentato sopra.
    jarsigner -verbose -keystore codesignstore -storepass -keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. Verifica il file JAR firmato.
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribuisci il codice.

Approccio 2 – Uso del file PKCS#12 esistente contenente sia il certificato di firma del codice che la chiave privata

  1. Se necessario, scarica JDK dal collegamento seguente:
    http://java.sun.com/javase/downloads/index.jsp
  2. Verifica che il file PFX/P12 possa essere utilizzato con jarsigner. Esegui il comando seguente; il nome alias richiesto al passaggio 5 verrà visualizzato nella parte alta del risultato:
    keytool -list -storetype pkcs12 -keystore miocert.pfx -v
  3. Crea un file JAR a partire da file di classe Java mediante lo strumento jar:
    jar cvf myapp.jar myapp.class
  4. Firma il file JAR mediante jarsigner, servendoti del certificato di firma del codice e della chiave privata:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
    • "mycert.pfx" corrisponde al percorso completo del file PFX/P12 contenente il certificato di firma del codice e la chiave privata. Il file dovrebbe includere anche tutti i certificati intermedi.
    • Il "aliasname" viene visualizzato nel risultato del passaggio 2, nella parte alta. Se il file PFX/P12 è stato esportato da Windows, il nome alias sarà a tutti gli effetti un identificatore univoco globale (GUID).
    • Quando richiesto, immetti la password associata alla chiave privata nel file PFX/P12. È possibile includere anche l'opzione "-storepass" per specificare la password nella riga di comando.
    • Il file di input non firmato è "myapp.jar" e verrà sovrascritto con la versione firmata del file. Usa l'opzione della riga di comando "-signedjar" per specificare dei nomi di file di input e di output distinti.
    Nell'esempio seguente vengono aggiunte le opzioni di indicazione di data e ora allo stesso esempio presentato sopra:
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasname"
  5. Verifica il file JAR firmato.
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribuisci il codice.

Collegamenti


Questo articolo è stato di aiuto?
Grazie per il tuo feedback
Felici di esserti stati di aiuto! C'è altro che possiamo fare per te?
Ci dispiace. Come possiamo esserti più utili?