2017-05-30 3 views
0

le client envoie une liste de chiffrement lors de l'envoi de la demande, mais le serveur cxf-jeton n'accepte aucun chiffrement donné et ferme la session. ci-dessous est les journaux SSL du côté serveur. cela fonctionne quand le serveur fonctionne avec jdk6 mais pas avec la version supérieure de java. J'ai essayé de définir https.protocol mais rien n'a aidé. J'ai vérifié que tous les fichiers de clés sont également mis à jour dans cacerts. n'importe quelle idée ou aide serait appréciée ?? également serveur est créé en utilisant org.apache.cxf.jaxws.JaxWsServerFactoryBeanSSLHandshakeException: le serveur jeton ne sélectionne aucun chiffrement pour initier la prise de contact SSL

 
      tp1402834900-33, READ: TLSv1.2 Handshake, length = 227 
      *** ClientHello, TLSv1.2 
      RandomCookie: GMT: 1496138621 bytes = { 96, 63, 100, 252, 232, 36, 198, 68, 124, 190, 117, 1, 205, 237, 23, 156, 66, 68, 27, 72, 46, 44, 245, 6, 67, 240, 24, 181 } 
      Session ID: {} 
      Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5] 
      Compression Methods: { 0 } 
      Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, secp256k1} 
      Extension ec_point_formats, formats: [uncompressed] 
      Extension signature_algorithms, signature_algorithms: SHA512withECDSA, SHA512withRSA, SHA384withECDSA, SHA384withRSA, SHA256withECDSA, SHA256withRSA, Unknown (hash:0x4, signature:0x2), SHA1withECDSA, SHA1withRSA, SHA1withDSA 
      *** 
      [read] MD5 and SHA1 hashes: len = 227 
              ... 
      %% Initialized: [Session-12, SSL_NULL_WITH_NULL_NULL] 
      qtp1402834900-29, called closeOutbound() 
      qtp1402834900-29, closeOutboundInternal() 

et les journaux du côté client montre exception établissement de liaison SSL

 
    Thread-38, WRITE: TLSv1.2 Handshake, length = 227 
    Thread-38, received EOFException: error 
    Thread-38, handling exception: javax.net.ssl.SSLHandshakeException: Remote 
    host closed connection during handshake 
    Thread-38, SEND TLSv1.2 ALERT: fatal, description = handshake_failure 
    Thread-38, WRITE: TLSv1.2 Alert, length = 2 
    Thread-38, called closeSocket 
    Thread-38, called close 
    Thread-38, called closeInternal 

Répondre

1

Java 6 est très ancienne, et considéré comme la fin de vie avec Oracle. Lorsque vous mettez à niveau des versions Java, vous mettez également à niveau rapidement ce que cela signifie d'avoir une connexion sécurisée et cryptée sur l'Internet public.

Par exemple:

  • SSLv3 a été dépréciée et désactivé.
  • Des centaines de chiffrements ont été dépréciés et désactivés.
  • TLS/1.1 et TLS/1.2 ont été introduites

Pour vous d'avoir du succès, vous MUST avez un clientqui parle TLS/1.2 avec des suites de chiffrement modernes, et pas des suites de chiffrement dépréciés ou handicapées ou protocoles.

Cela signifie pas SHA1, pas MD5, pas petite RSA keysize, pas SSLv3, pas RC4, etc ...

Pour la liste complète, voir la liste désactivée machine virtuelle Java ...

$ grep -E "^j.*disabled" $JAVA_HOME/jre/lib/security/java.security 
jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ 
jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024 
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, \ 

Pour Jetty 9.3+, vous pouvez activer le vidage de démarrage du serveur, et regarder les détails SslContextFactory, qui révéleront quels protocoles et chiffrements sont réellement activés.

$ cd /path/to/mybase && \ 
java -jar /path/to/jetty-dist.jar -Djetty.dump.start=true 
[email protected](null,null) trustAll=false 
+- Protocol Selections 
| +- Enabled (size=3) 
| | +- TLSv1 
| | +- TLSv1.1 
| | +- TLSv1.2 
| +- Disabled (size=2) 
|  +- SSLv2Hello - ConfigExcluded:'SSLv2Hello' 
|  +- SSLv3 - JreDisabled:java.security, ConfigExcluded:'SSLv3' 
+- Cipher Suite Selections 
    +- Enabled (size=15) 
    | +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 
    | +- TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 
    | +- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 
    | +- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 
    | +- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 
    | +- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 
    | +- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 
    | +- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 
    | +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 
    | +- TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 
    | +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 
    | +- TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 
    | +- TLS_EMPTY_RENEGOTIATION_INFO_SCSV 
    | +- TLS_RSA_WITH_AES_128_CBC_SHA256 
    | +- TLS_RSA_WITH_AES_128_GCM_SHA256 
    +- Disabled (size=42) 
     +- SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DHE_DSS_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DHE_RSA_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DH_anon_WITH_3DES_EDE_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_DH_anon_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_RSA_EXPORT_WITH_DES40_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_RSA_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_RSA_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_RSA_WITH_NULL_MD5 - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- SSL_RSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_DHE_RSA_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_DH_anon_WITH_AES_128_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_DH_anon_WITH_AES_128_CBC_SHA256 - JreDisabled:java.security 
     +- TLS_DH_anon_WITH_AES_128_GCM_SHA256 - JreDisabled:java.security 
     +- TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDHE_ECDSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDHE_RSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_ECDSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_RSA_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_anon_WITH_AES_128_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_ECDH_anon_WITH_NULL_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_KRB5_WITH_3DES_EDE_CBC_MD5 - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_KRB5_WITH_3DES_EDE_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_KRB5_WITH_DES_CBC_MD5 - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_KRB5_WITH_DES_CBC_SHA - JreDisabled:java.security, ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_RSA_WITH_AES_128_CBC_SHA - ConfigExcluded:'^.*_(MD5|SHA|SHA1)$' 
     +- TLS_RSA_WITH_NULL_SHA256 - JreDisabled:java.security 

Pour le succès à long terme, vous devez garder votre machine virtuelle Java java à jour et d'honorer les dates d'expiration JVM pour chaque version, comme les couches de sécurité sur la machine virtuelle Java ne mettent à jour rapidement (en termes de bugs, implémentation et configuration). Cette condition est facultative si vous envisagez d'utiliser le cryptage sur l'Internet public ou si vous envisagez de prendre en charge les navigateurs Web modernes (qui suivent également les dépréciations des protocoles et des suites de chiffrement)