je reçois ci-dessous erreur en essayant d'invoquer https repos service:Widlfly 9: java.security.ProviderException: Impossible de tirer la clé
Caused by: java.security.ProviderException: Could not derive key
sun.security.ec.ECDHKeyAgreement.engineGenerateSecret(ECDHKeyAgreement.java:133)
sun.security.ec.ECDHKeyAgreement.engineGenerateSecret(ECDHKeyAgreement.java:163)
javax.crypto.KeyAgreement.generateSecret(KeyAgreement.java:648)
sun.security.ssl.ECDHCrypt.getAgreedSecret(ECDHCrypt.java:101)
sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:1067)
sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:348)
sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
... 36 more
Caused by: java.security.InvalidAlgorithmParameterException
sun.security.ec.ECDHKeyAgreement.deriveKey(Native Method)
sun.security.ec.ECDHKeyAgreement.engineGenerateSecret(ECDHKeyAgreement.java:130)
... 46 more
java.security.ProviderException: Could not derive key
Il est intéressant, si j'exécute même code comme autonome à l'aide de Java 1.8, ça fonctionne bien.
Un problème survient après le déploiement du code dans Wildfly 9. Wildfly 9 fonctionne sur Java 1.8 exactement de la même manière que la version autonome. Donc, je ne pense pas que c'est un problème Java, plus de problème de Wildfly.
J'ai essayé de comparer -Djavax.net.debug = tous les deux sur standalone contre wildfly. Voici un extrait de code déployé par wildfly.
[0m[0m13:35:26,100 INFO [stdout] (default task-2) *** ECDHClientKeyExchange
[0m[0m13:35:26,104 INFO [stdout] (default task-2) ECDH Public value: { 4, 43, 99, 163, 253, 189, 137, 10, 221, 205, 19, 183, 173, 128, 171, 32, 35, 249, 144, 154, 197, 102, 78, 161, 23, 240, 209, 125, 129, 106, 224, 33, 219, 6, 207, 105, 238, 187, 181, 124, 194, 13, 0, 223, 88, 212, 101, 163, 19, 119, 41, 100, 36, 79, 235, 57, 65, 112, 71, 194, 43, 36, 244, 78, 174 }
[0m[0m13:35:26,104 INFO [stdout] (default task-2) [write] MD5 and SHA1 hashes: len = 70
[0m[0m13:35:26,106 INFO [stdout] (default task-2) 0000: 10 00 00 42 41 04 2B 63 A3 FD BD 89 0A DD CD 13 ...BA.+c........
[0m[0m13:35:26,108 INFO [stdout] (default task-2) 0010: B7 AD 80 AB 20 23 F9 90 9A C5 66 4E A1 17 F0 D1 .... #....fN....
[0m[0m13:35:26,110 INFO [stdout] (default task-2) 0020: 7D 81 6A E0 21 DB 06 CF 69 EE BB B5 7C C2 0D 00 ..j.!...i.......
[0m[0m13:35:26,111 INFO [stdout] (default task-2) 0030: DF 58 D4 65 A3 13 77 29 64 24 4F EB 39 41 70 47 .X.e..w)d$O.9ApG
[0m[0m13:35:26,112 INFO [stdout] (default task-2) 0040: C2 2B 24 F4 4E AE .+$.N.
[0m[0m13:35:26,113 INFO [stdout] (default task-2) default task-2, WRITE: TLSv1 Handshake, length = 70
[0m[0m13:35:26,113 INFO [stdout] (default task-2) [Raw write]: length = 75
[0m[0m13:35:26,115 INFO [stdout] (default task-2) 0000: 16 03 01 00 46 10 00 00 42 41 04 2B 63 A3 FD BD ....F...BA.+c...
[0m[0m13:35:26,116 INFO [stdout] (default task-2) 0010: 89 0A DD CD 13 B7 AD 80 AB 20 23 F9 90 9A C5 66 ......... #....f
[0m[0m13:35:26,118 INFO [stdout] (default task-2) 0020: 4E A1 17 F0 D1 7D 81 6A E0 21 DB 06 CF 69 EE BB N......j.!...i..
[0m[0m13:35:26,120 INFO [stdout] (default task-2) 0030: B5 7C C2 0D 00 DF 58 D4 65 A3 13 77 29 64 24 4F ......X.e..w)d$O
[0m[0m13:35:26,121 INFO [stdout] (default task-2) 0040: EB 39 41 70 47 C2 2B 24 F4 4E AE .9ApG.+$.N.
[0m[0m13:35:26,138 INFO [stdout] (default task-2) default task-2, handling exception: java.security.ProviderException: Could not derive key
[0m[0m13:35:26,138 INFO [stdout] (default task-2) %% Invalidated: [Session-1, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
[0m[0m13:35:26,139 INFO [stdout] (default task-2) default task-2, SEND TLSv1 ALERT: fatal, description = internal_error
[0m[0m
13:35:26,139 INFO [stdout] (default task-2) default task-2, WRITE: TLSv1 Alert, length = 2
[0m[0m13:35:26,139 INFO [stdout] (default task-2) [Raw write]: length = 7
[0m[0m13:35:26,141 INFO [stdout] (default task-2) 0000: 15 03 01 00 02 02 50 ......P
[0m[0m13:35:26,141 INFO [stdout] (default task-2) default task-2, called closeSocket()
[0m[0m13:35:26,141 INFO [stdout] (default task-2) default task-2, called close()
[0m[0m13:35:26,141 INFO [stdout] (default task-2) default task-2, called closeInternal(true)
[0m[31m13:35:26,142 ERROR [stderr] (default task-2) javax.net.ssl.SSLException: java.security.ProviderException: Could not derive key
J'ai essayé d'appliquer tous les correctifs comme mentionné en ligne, mais le problème persiste encore. Tout pointeur/aide sera très apprécié. Merci.
Après beaucoup de diagnostic, j'ai été en mesure de résoudre ce problème. – user1873926