Débarrassez-vous de l'éditeur "UNKNOWN" de l'avertissement de sécurité de l'applet

Je suis en train de signer une applet de sorte que le éditeur n'apparaît pas comme "INCONNU" :

Débarrassez-vous de l'éditeur

Je travaille pour une organisation et nous avons notre propre autorité de certificationcertificat de la chaîne d' est la suivante : ORG autorité de certification Racine > ORG Autorité de Certification de Confiance > Yann39 (moi :D)

J'ai demandé un certificat et ils m'ont fourni un lien pour le faire entrer dans le navigateur.
J'ai ensuite exporté (à partir de Firefox) pour obtenir le fichier PKCS#12 que j'ai nommé mystore.p12.

Puis j'ai fait la suite de signer mon applet :

/* TO KNOW THE ALIAS */
c:\testrep>keytool -list -storetype pkcs12 -keystore mystore.p12
Enter keystore password:  ********
Keystore type: pkcs12
Keystore provider: SunJSSE
Your keystore contains 1 entry
id de yann39, Oct 24, 2012, keyEntry,
Certificate fingerprint (MD5): D7:E3:83:1D:C1:40:68:72:5F:A8:6F:AC:3A:EA:DD:47
/* CREATE FAKE CLASS FILE AND BUILD A JAR */
c:\testrep>echo test > test.class
c:\testrep>C:\oracle\dev10gr2\jdk\bin\jar cf0 test_applet.jar test.class
/* SIGN THE JAR */
c:\testrep>C:\oracle\dev10gr2\jdk\bin\jarsigner -verbose -storetype pkcs12 -keystore mystore.p12 test_applet.jar "id de yann39"
Enter Passphrase for keystore: ********
updating: META-INF/MANIFEST.MF
adding: META-INF/ID_DE_YA.SF
adding: META-INF/ID_DE_YA.RSA
signing: test.class
/* VERIFY THE SIGNATURE */
c:\testrep>C:\oracle\dev10gr2\jdk\bin\jarsigner -verify -verbose -certs test_applet.jar
132 Wed Oct 24 17:49:52 CEST 2012 META-INF/MANIFEST.MF
185 Wed Oct 24 17:49:52 CEST 2012 META-INF/ID_DE_YA.SF
4801 Wed Oct 24 17:49:52 CEST 2012 META-INF/ID_DE_YA.RSA
0 Wed Oct 24 17:48:36 CEST 2012 META-INF/
sm         0 Wed Oct 24 17:47:46 CEST 2012 test.class
X.509, CN=Yann39, CN=794324, CN=myname, OU=Users, OU=Organic Units,
DC=myorg, DC=ch
X.509, CN=ORG Trusted Certification Authority, DC=myorg, DC=ch
X.509, CN=ORG Root CA, DC=myorg, DC=ch
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar verified.
c:\testrep>

Puis je charge de la appled dans mon application en utilisant les suivantes :

<object id="mytestapplet" width="0" height="0" style="position:absolute" type="application/x-java-applet">
<param name="archive" value="https://myhost.ch/rep/test_applet.jar">
<param name="code" value="test">
<param name="scriptable" value="true">
<param name="mayscript" value="no">
</object>

J'ai lu quelques posts comme celui-ci : Comment signer applet java .fichier pfx? et il semble je devrais obtenir smi lors de la vérification de fichier signé à partir du pot, non seulement sm cela signifie que le certificat n'a pas été trouvé dans le fichier de clés.

Donc je pensais que la chaîne de certification n'a pas été complètemais lors de l'exécution de la commande suivante, j'ai vu que ce n'était pas le cas :

c:\testrep>keytool -list -v -storetype pkcs12 -keystore mystore.p12
Enter keystore password:  ********
Keystore type: pkcs12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: id  de yann39
Creation date: Oct 24, 2012
Entry type: keyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=Yann39, CN=794324, CN=myname, OU=Users, OU=Organic Units,
DC=myorg, DC=ch
Issuer: CN=ORG Trusted Certification Authority, DC=myorg, DC=ch
Serial number: 12d21eb200200000a02b
Valid from: Mon Jun 25 14:16:00 CEST 2011 until: Wed Jun 24 14:16:00 CEST 2013
Certificate fingerprints:
MD5:  D7:E3:83:1D:C1:41:78:72:5F:A8:6D:BD:3A:ED:DD:48
SHA1: 24:31:1D:25:02:98:0D:F8:28:6A:F1:0E:E8:BB:04:7E:51:E2:E9:66
Certificate[2]:
Owner: CN=ORG Trusted Certification Authority, DC=myorg, DC=ch
Issuer: CN=ORG Root CA, DC=myorg, DC=ch
Serial number: 601fab4c000000000003
Valid from: Tue Oct 02 11:36:53 CEST 2006 until: Mon Oct 02 11:47:53 CEST 2016
Certificate fingerprints:
MD5:  51:A1:EA:33:21:2C:71:60:A1:6F:F1:22:92:A8:51:8D
SHA1: 66:CD:70:13:27:68:F3:C2:08:F3:BE:5F:BF:D4:17:BD:85:9D:10:65
Certificate[3]:
Owner: CN=ORG Root CA, DC=myorg, DC=ch
Issuer: CN=ORG Root CA, DC=myorg, DC=ch
Serial number: 7dc0d089138d1d804b2e68e21b947412
Valid from: Tue Oct 02 10:55:19 CEST 2006 until: Sat Oct 02 11:01:47 CEST 2026
Certificate fingerprints:
MD5:  A2:CE:DC:7D:F5:60:D7:2C:5E:B5:29:74:9D:51:F9:49
SHA1: DA:D8:7F:63:95:90:A2:E4:D4:1D:B9:48:FD:F4:C3:5C:FC:2B:B6:A3
*******************************************
*******************************************
c:\testrep>

La chaîne semble bonne.

Mais je encore obtenir le avertissement de sécurité avec un "INCONNU" Éditeur. Pourquoi ?


EDITION 25-OCT-2012

J'ai oublié de dire que il fonctionne à l'aide d'Internet Explorer ("Signature a été vérifiée" et l'Éditeur est "Yann39"), de ne pas utiliser google Chrome ou Firefox.

J'ai essayé d'utiliser un auto-signé certificat :

keytool -genkey -alias myalias -storetype PKCS12 -keystore mykeystore.p12 -dname "cn=Yann39, ou=UN, o=ORG, st=Geneva, c=CH"
keytool -list -v -storetype pkcs12 -keystore mykeystore.p12
echo test > test.class
C:\oracle\dev10gr2\jdk\bin\jar cf0 myapplet.jar test.class
C:\oracle\dev10gr2\jdk\bin\jarsigner -verbose -storetype pkcs12 -keystore mykeystore.p12 myapplet.jar "myalias"
C:\oracle\dev10gr2\jdk\bin\jarsigner -verify -verbose -certs myapplet.jar

Il ne fonctionne pas ni sur IE ni sur Firefox ou Chrome, normal.

J'ai essayé d'ajouter les 2 certificats approuvés à partir de mon organisation, mais il a échoué :

keytool -import -alias "myalias_root" -file ORGRooTCA.crt -storetype pkcs12 -keystore mykeystore.p12
keytool -import -alias "myalias_auth" -file ORGTrustedCertificationAuthority.crt -storetype pkcs12 -keystore mykeystore.p12

avec l'erreur :

keytool error: java.security.KeyStoreException: TrustedCertEntry not supported

Je ne comprends toujours pas pourquoi il est dit que le certificat n'a pas été trouvé dans le fichier de clés (sm) lors de la vérification de la signature.


EDITION 02-NOV-2012

J'ai enfin eu une réponse de mon Autorité de Certification. Que les certificats de signature de code sont fournis pour test uniquement (pas officiellement pris en charge au sein de notre organisation), ils ne fournissent pas toute l'aide et ils ont fermé mon billet...

Les 2 certificats ORG autorité de certification Racine et ORG Autorité de Certification de Confiance de la confiance dans les 3 navigateurs (IE, Firefox, Chrome). Lors de l'exécution de mon applet, je reçois toujours le résultat attendu dans IE :

Mais pas dans Firefox et Chrome :

Une autre chose étrange est que, comme vous le voyez, c'est à dire est de référencement comme le “Nom” de l'id de la <object> balise dans le code HTML (applettest), tandis que Firefox et Chrome sont en indiquant le nom de la classe principale (test).

Ce que je pense, c'est que c'est la même chose à propos de la Éditeurc'est à dire est à la recherche à la CN RDN (Yann39) alors que Firefox et Chrome sont à la recherche à la O RDN et ne peut pas en trouver un, car elle n'est pas définie dans mon certificat.

Si quelqu'un a plus d'informations sur la manière dont les navigateurs vérifier les certificats, s'il vous plaît partager.

Grâce.

source d'informationauteur Yann39