Bonsoir à tous,
Je cherche à comprendre le fonctionnement d'une signature de confiance d'un applet
J'ai des bonne bases mais je ne suis pas sur de ce que je fais car j’apprends tous seul et donc il est difficile pour moi de me corriger
voici mon tp
test.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 import java.applet.Applet; import java.awt.Graphics; import java.io.FileWriter; import java.io.PrintStream; public class test extends Applet { public test() { } public void paint(Graphics g) { g.drawString("Hello applet!", 50, 25); System.out.println("plop"); try { FileWriter filewriter = new FileWriter("C:\\test.txt"); filewriter.write("test"); filewriter.close(); } catch(Exception exception) { g.drawString("Echec", 50, 75); } } }je répond aux questions et j'obtiens un .keystore
Code : Sélectionner tout - Visualiser dans une fenêtre à part keytool -genkey -alias localhost -validity 365
ensuite je fais un fichier MANIFEST.MF que je laisse vide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 C:\Program Files\Java\jdk1.7.0_03\bin>keytool -genkey -alias localhost -validity 365 Entrez le mot de passe du fichier de clÚs : Ressaisissez le nouveau mot de passe : Quels sont vos nom et prÚnom ? [Unknown]: localhost Quel est le nom de votre unitÚ organisationnelle ? [Unknown]: test Quel est le nom de votre entreprise ? [Unknown]: private Quel est le nom de votre ville de rÚsidence ? [Unknown]: paris Quel est le nom de votre Útat ou province ? [Unknown]: ile de france Quel est le code pays Ó deux lettres pour cette unitÚ ? [Unknown]: Fr Est-ce CN=localhost, OU=test, O=private, L=paris, ST=ile de france, C=Fr ? [non]: oui Entrez le mot de passe de la clÚ pour <localhost> (appuyez sur EntrÚe s'il s'agit du mot de passe du fichier de clÚs) : Ressaisissez le nouveau mot de passe : C:\Program Files\Java\jdk1.7.0_03\bin>
je lance ensuite ces commandes :
javac test.java
jar cvmf MANIFEST.MF test.jar test.class
et pour obtenir une signature de confiance je fais ceci
wget http://www.startssl.com/certs/sub.class1.server.ca.crt
keytool -import -alias startcom.ca.sub -file sub.class1.server.ca.crt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 C:\Program Files\Java\jdk1.7.0_03\bin>keytool -import -alias startcom.ca.sub -fi le sub.class1.server.ca.crt Entrez le mot de passe du fichier de clÚs : PropriÚtaire : CN=StartCom Class 1 Primary Intermediate Server CA, OU=Secure Dig ital Certificate Signing, O=StartCom Ltd., C=IL Emetteur : CN=StartCom Certification Authority, OU=Secure Digital Certificate Si gning, O=StartCom Ltd., C=IL NumÚro de sÚrie : 18 Valide du : Wed Oct 24 22:54:17 CEST 2007 au : Tue Oct 24 22:54:17 CEST 2017 Empreintes du certificat : MD5: 30:B0:5A:F7:B2:F4:BE:0C:28:67:15:EA:CC:5B:24:20 SHA1 : F6:91:FC:87:EF:B3:13:53:54:22:5A:10:E1:27:E9:11:D1:C7:F8:CF SHA256 : CB:2D:B5:73:61:0F:40:1E:8D:60:29:17:BB:BE:6A:B4:16:22:55:F2:08 :EF:AD:90:9D:54:40:69:1A:A0:20:3C Nom de l'algorithme de signature : SHA1withRSA Version : 3 Extensionsá: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: EB 42 34 D0 98 B0 AB 9F F4 1B 6B 08 F7 CC 64 2E .B4.......k...d. 0010: EF 0E 2C 45 ..,E ] ] #2: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 4E 0B EF 1A A4 40 5B A5 17 69 87 30 CA 34 68 43 N....@[..i.0.4hC 0010: D0 41 AE F2 .A.. ] ] #3: ObjectId: 2.5.29.31 Criticality=false CRLDistributionPoints [ [DistributionPoint: [URIName: http://www.startssl.com/sfsca.crl] , DistributionPoint: [URIName: http://crl.startssl.com/sfsca.crl] ]] #4: ObjectId: 2.5.29.32 Criticality=false CertificatePolicies [ [CertificatePolicyId: [1.3.6.1.4.1.23223.1.2.1] [PolicyQualifierInfo: [ qualifierID: 1.3.6.1.5.5.7.2.1 qualifier: 0000: 16 22 68 74 74 70 3A 2F 2F 77 77 77 2E 73 74 61 ."http://w ww.sta 0010: 72 74 73 73 6C 2E 63 6F 6D 2F 70 6F 6C 69 63 79 rtssl.com/policy 0020: 2E 70 64 66 .pdf ], PolicyQualifierInfo: [ qualifierID: 1.3.6.1.5.5.7.2.1 qualifier: 0000: 16 28 68 74 74 70 3A 2F 2F 77 77 77 2E 73 74 61 .(http://w ww.sta 0010: 72 74 73 73 6C 2E 63 6F 6D 2F 69 6E 74 65 72 6D rtssl.com/interm 0020: 65 64 69 61 74 65 2E 70 64 66 ediate.pdf ]] ] ] #5: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ Key_CertSign Crl_Sign ] #6: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false AuthorityInfoAccess [ [ accessMethod: ocsp accessLocation: URIName: http://ocsp.startssl.com/ca , accessMethod: caIssuers accessLocation: URIName: http://www.startssl.com/sfsca.crt ] ] #7: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] Faire confiance Ó ce certificat ? [non] : oui Certificat ajoutÚ au fichier de clÚs C:\Program Files\Java\jdk1.7.0_03\bin>donc suivant ma logique qui n'est que la mienne bien sur si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 C:\Program Files\Java\jdk1.7.0_03\bin>keytool -list Entrez le mot de passe du fichier de clÚs : Type de fichier de clÚs : JKS Fournisseur de fichier de clÚs : SUN Votre fichier de clÚs d'accÞs contient 2 entrÚes startcom.ca.sub, 9 dÚc. 2013, trustedCertEntry, Empreinte du certificat (SHA1) : F6:91:FC:87:EF:B3:13:53:54:22:5A:10:E1:27:E9:11 :D1:C7:F8:CF localhost, 9 dÚc. 2013, PrivateKeyEntry, Empreinte du certificat (SHA1) : 95:93:A0:EA:A5:7F:DB:29:4C:08:51:AF:4F:3C:53:86 :C0:41:BB:DD C:\Program Files\Java\jdk1.7.0_03\bin>
jarsigner -verbose test.jar startcom.ca.sub
j'obtiens un jar signé qui fonctionne parfaitement mais l'éditeur reste inconnu
j'ai essayé plusieurs source pour comprendre mon erreur
mes conclusions sont
1: le crt n'est plus de confiance parce qu’il est gratuit ?!
2: je devrais obtenir un fichier .csr qui devrais être modifier avec http://localhost
3: je dois utiliser un fichier .jnlp avec all-permission dans mon jar ??
4: le fichier manifest doit être pré-remplis
voilà j'ai vraiment fais des recherches approfondi avant de poster
merci de votre aide
Partager