2017-02-21 2 views
2

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.

+0

Après beaucoup de diagnostic, j'ai été en mesure de résoudre ce problème. – user1873926

Répondre

2

Après beaucoup de diagnostic, j'ai été en mesure de résoudre ce problème.

Dans mon environnement actuel, j'utilisais ColdFusion au-dessus de Wildfly 9. Le code particulier ci-dessus était invoqué depuis l'intérieur des pages ColdFusion. J'ai trouvé que le fournisseur de sécurité par défaut de COldFusion, JsafeJCE, était le problème ici. Donc, j'ai supprimé le fournisseur "JsafeJCE" et le code exécuté comme un charme.

utilisé ci-dessous code pour supprimer JsafeJCE:

<cfobject type="Java" class="java.security.Security" name="providerObj">; 
<cfscript>providerObj.removeProvider("JsafeJCE");</cfscript> 

Résumé - Il était un problème avec le fournisseur de sécurité de la boîte par ColdFusion installer.

0

J'ai également rencontré cette erreur une fois. Nous avons essayé de changer les versions de Java, mais cela n'a pas aidé. Cette erreur a été provoquée par un projet différent, qui a été déployé sur le même serveur. Peut-être avait-il une configuration SSL spéciale activée.