5

Ho comprato uno COMODO code signing certificate e l'ho usato per firmare la mia applicazione webstart java.Java webstart dice che la mia app usa un certificato autofirmato, ma ho usato un certificato di firma del codice COMODO

Domanda principale: il certificato di firma del codice COMODO è supportato anche da java 8?

Maggiori informazioni:

Su tutte le macchine tranne il mio, blocca l'applicazione java, dicendo che utilizza un certificato auto firmato.

Non capisco nemmeno perché funzioni sulla mia macchina. Ho esaminato l'elenco delle root di certificazione attendibili nel pannello di controllo di java (1.8.0_45-b15), ma non riesco a trovare la "Autorità di certificazione RSOD di COMODO".

Vedo quel certificato nello snap-in del certificato MMC di Windows in "Autorità di certificazione radice attendibili". Ma su almeno altre 3 macchine non esiste.

+1

Sei sicuro che hai usato quel certificato? Hai anche un certificato autofirmato? – EJP

+0

Sì, perché sulla mia macchina java webstart visualizza il nome dell'editore in base al certificato e posso anche controllare i dettagli del certificato e vedere i certificati COMODO nella catena. – Zalumon

+1

puoi restituirlo e ottenere un rimborso? :) prova un'altra CA. – ZhongYu

risposta

4

ho finalmente risolto - Ecco la storia:

Quando ho comprato il certificato, ho dovuto ritirarlo dalla navigazione verso un indirizzo web che ho ricevuto per e-mail. Lì, il certificato è stato installato automaticamente nel truststore del mio browser (Firefox).

L'ho quindi esportato da Firefox (Opzioni - Avanzate - Visualizza certificati - I tuoi certificati - Pulsante di backup).

Quello che non mi rendevo conto al momento era che Firefox, a differenza di Java e Windows, ha il "Autorità COMODO RSA di certificazione" come integrato di token:

quello che anch'io ho didn Al momento, l'esportazione del certificato di Firefox sembra includere solo la catena di certificati fino alla prima autorità attendibile, in questo caso la "Autorità di certificazione RSOD di COMODO".

Da questo COMODO support site ho imparato che la catena dovrebbe effettivamente andare una più alta, tutta la strada fino a "AddTrust External CA Root":

Che sembrava molto più promettente, perché il certificato AddTrust è in realtà incluso nel javascript di Oracle 8 cacerts truststore, che è responsabile della verifica del jar durante java webstart.

La prossima cosa che ho fatto è stato importare il file * .p12 che ho ricevuto da Firefox nel gestore dei certificati di Windows (Start - certmgr.msc), perché per qualche motivo pensavo che questo fosse il modo per convertire * .p12 in * .pfx (anche se ora so che entrambe le estensioni vengono utilizzate per lo stesso formato di keystore pkcs12). In ogni caso, durante l'importazione questa domanda spuntato:

Qui ho fatto l'errore critico: ho scelto Sì. Ciò ha causato il "Certification Authority COMODO RSA" per essere installato nel truststore Windows come "certificato principale attendibile" (btw visibile solo dopo ho riavviato certmgr.msc):

Il mio codice di firma del certificato è stato installato in "Personale/Certificati". L'ho esportato da lì (Azione - Tutte le attività - Esporta ...) e contrassegnato "Includi tutti i certificati nel percorso di certificazione, se possibile".

Ora la stessa cosa è accaduto come quando ho esportato da Firefox. Poiché Windows ora disponeva di "COMODO RSA Certification Authority" installato come certificato radice attendibile, includeva solo la catena fino a questo. Questo è quello che ho ottenuto dopo l'esportazione:

E ora per la mossa geniale, che sono incappato per puro caso: ho cancellato il "Certification Authority COMODO RSA" da parte del direttore di certificazione di Windows.Ora, quando ho cliccato due volte il mio certificato di firma del codice, la catena visualizzata improvvisamente sembrava diverso:

lo ammetto ho avuto una piccola scarica di adrenalina quando ho visto questo. Ho esportato di nuovo (esattamente le stesse impostazioni di prima).

E infatti, dopo che ho firmato il mio applicazione con questo certificato esportato, Java Web Start accetta:

2

AGGIORNAMENTO: Questa è stata una release di JRE. Comodo's new CA certs were added to the default keystore in Java 8u51.

Una risposta ad un'altra domanda che, mentre un po 'fuori posto non sembra molto sul tema qui:

Si può dire se certs di una CA lavorerà per Java di firma del codice dal esaminando il Java cacerts di file , che elenca tutte le CA note a Java. Se il loro certificato è in questo file, Java non si lamenterà del codice firmato . In caso contrario, avviserà gli utenti. Ad esempio, :

[email protected]:~# keytool -list -keystore /usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/security/cacerts | grep comodo

Enter keystore password: changeit

comodoaaaca, 02-May-2006, trustedCertEntry,

Nota che ho dovuto inserire la password chiavi di default, changeit. Questo comando dovrebbe funzionare anche su Windows, anche se sarà necessario modificare il percorso del file cacerts e non si avrà grep. Utilizza di più e vai alla pagina finché non trovi o non trovi quello che stai cercando .

A partire da oggi, Comodo si trova nel file cacerts e startsl no. Quindi un certificato startsl non sarebbe molto buono per il codice Java.

Fonte: https://stackoverflow.com/a/1906679/154527

+0

Grazie, ma era nel 2009, con java 6. In java 7 e 8, l'unica occorrenza di Comodo che posso vedere in quell'output è per un certificato denominato "Servizi certificati AAA", che non è quello che usano per certificati di firma del codice. – Zalumon

+1

@Zalumon la mia citazione riguardava come identificare se Comodo era o meno un codice di firma attendibile CA. È in qualche modo ora un processo errato? Sembra che ti abbia dato la risposta e un rimborso è in ordine. –

+0

no, per quanto ho capito, questo è ancora il processo corretto per determinare quali certificati sono considerati affidabili da java (anche se sulla base del mio esperimento penso che java possa utilizzare anche il truststore di Windows). Ho segnato la tua risposta corretta in un momento in cui mi ero arreso e ho pensato che il mio certificato fosse inutile. Solo più tardi ho capito il vero problema ... mi dispiace per quello! – Zalumon

1

posso darvi una risposta condizionale. Su uno dei computer a cui non piace il certificato, vai su http://jonathancrosmer.com/software/invadeearth/ e fai clic su Invade Earth.
Questo programma utilizza un certificato Comodo. L'ho costruito su Java 7, ma se il tuo computer ha solo un runtime Java 8 dovrebbe comunque funzionare. 1. Se ricevi lo stesso avviso, sai che si tratta di un problema di Java 8. 2. Altrimenti, si sa che c'è qualcosa che non va nel certificato. In entrambi i casi, probabilmente vorrai ottenere un rimborso dall'emittente del certificato, poiché pubblicizzano che il loro certificato è considerato affidabile da Java.

+1

Vedere anche http://stackoverflow.com/questions/27992275/why-does-java-on-one-particular-installation-think-im-self-signing?rq=1 –

+1

Grande, grazie per questo! Sto iniziando a capire questo intero sistema. La tua app webstart funziona per me e il motivo è che la root del certificato è "UTN-USERFirst-Object", che casualmente esiste sia nel truststore del mio Windows 7 box che nel truststore cacerts del mio oracle jre 1.8 installato. 0_u45 utilizzato per avviare la webapp. La radice del certificato che ho ricevuto è "COMODO RSA Certification Authority". – Zalumon

+0

Sono contento che sia stato utile! –

Problemi correlati