[ 
https://issues.apache.org/jira/browse/CXF-6294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14365023#comment-14365023
 ] 

SL commented on CXF-6294:
-------------------------

{code:java}

                HTTPConduit conduit = (HTTPConduit) client.getConduit();

                (...)
                TLSClientParameters tls = new TLSClientParameters();
                // TRUSTSTORE loaded with configuration
                tls.setTrustManagers(configuration.getTmf().getTrustManagers());
                tls.setDisableCNCheck(configuration.getDisableTLSHostCheck());
                // Keystore loaded with configuration
                tls.setKeyManagers(configuration.getKmf().getKeyManagers());
                
                tls.setSecureSocketProtocol(configuration.getTLSProtocols());
                tls.setCipherSuites(configuration.getTLSCipherSuites());

                (...)
                conduit.setTlsClientParameters(tls);
{code}

{code:java}

        // TLS parameters with defaults
        private String TLSprotocols = "TLSv1.2";
        private String TLSCipherSuites = 
"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_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";
        
        /*
        private String TLSCipherSuites = 
                                        "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"
                                        +"TLS_DHE_DSS_WITH_AES_256_CBC_SHA"+","
                                        +"TLS_DHE_RSA_WITH_AES_128_CBC_SHA"+","
                                        +"TLS_DHE_RSA_WITH_AES_256_CBC_SHA"+","
                                        +"TLS_RSA_WITH_AES_128_CBC_SHA"+","
                                        +"TLS_RSA_WITH_AES_256_CBC_SHA";
        */
        /*
        private String TLSCipherSuites = 
                                         "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"+","
                                        
+"TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"+","
                                        +"TLS_DHE_DSS_WITH_AES_256_CBC_SHA"+","
                                        
+"TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"+","
                                        +"TLS_DHE_RSA_WITH_AES_128_CBC_SHA"+","
                                        
+"TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"+","
                                        +"TLS_DHE_RSA_WITH_AES_256_CBC_SHA"+","
                                        
+"TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"+","
                                        +"TLS_RSA_WITH_AES_128_CBC_SHA"+","
                                        +"TLS_RSA_WITH_AES_128_CBC_SHA256"+","
                                        +"TLS_RSA_WITH_AES_256_CBC_SHA"+","
                                        +"TLS_RSA_WITH_AES_256_CBC_SHA256"+","
                                        +"TLS_RSA_WITH_AES_256_CBC_SHA256"+","
                                        
+"TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"+","
                                        
+"TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"+","
                                        
+"TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"+","
                                        
+"TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"+","
                                        
+"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"+","
                                        
+"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"+","
                                        
+"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"+","
                                        
+"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384";
        */

        (...)
        public List<String> getTLSCipherSuites() {
                return Arrays.asList(this.TLSCipherSuites.split(","));
        }

{code}

Not commented cipherSuites works (TLSv1.0 supported cipher suites)


> Cannot activate TLSv1.2 cipher suites on client on Java7
> --------------------------------------------------------
>
>                 Key: CXF-6294
>                 URL: https://issues.apache.org/jira/browse/CXF-6294
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.7.13, 2.7.14, 2.7.15
>         Environment: JRE 1.7.0_76, CXF 2.7.13-2.7.15 (previous versions not 
> checked)
>            Reporter: SL
>            Assignee: Colm O hEigeartaigh
>
> The Java7 JRE has a distinct behavior for client and server ssl sockets (see 
> JSSE reference)
> On server socket TLSv1.1 and TLSv1.2 are enabled by default whereas on client 
> socket both are disabled by default (but can be enabled with 
> setEnabledProtocols()).
> This settings have been reverted for Java8.
> The problem with cxf lies in cxf-rt-transports-http.jar in 
> org.apache.cxf.transport.http.SSLSocketFactoryWrapper.enableCipherSuites(...) 
> :
> {code:java}
>     private Socket enableCipherSuites(Socket s, Object[] logParams) {
>         SSLSocket socket = (SSLSocket)s;
>         
>         if ((socket != null) && (ciphers != null)) {
>             socket.setEnabledCipherSuites(ciphers);
>         }
>         if ((socket != null) && (protocol != null)) {
>             String p[] = findProtocols(protocol, 
> socket.getSupportedProtocols());
>             if (p != null) {
>                 socket.setEnabledProtocols(p);
>             }
>         }
>         if (socket == null) {
>             LogUtils.log(LOG, Level.SEVERE,
>                          "PROBLEM_CREATING_OUTBOUND_REQUEST_SOCKET", 
>                          logParams);
>         }
>         return socket;        
>     }
> {code}
> This code does not permit to enable the TLSv1.2 only ciphers suites on the 
> client.
> It produces
> {noformat}
> Caused by: java.lang.IllegalArgumentException: Unsupported ciphersuite 
>       at sun.security.ssl.CipherSuite.valueOf(Unknown Source) ~[na:1.7.0_76]
>       at sun.security.ssl.CipherSuiteList.<init>(Unknown Source) 
> ~[na:1.7.0_76]
>       at sun.security.ssl.SSLSocketImpl.setEnabledCipherSuites(Unknown 
> Source) ~[na:1.7.0_76]
>       at 
> org.apache.cxf.transport.https.SSLSocketFactoryWrapper.enableCipherSuites(SSLSocketFactoryWrapper.java:101)
> {noformat}
> because when setEnabledCipherSuites() is called, TLSv1.2 is not (yet) enabled.
> IMHO setEnabledProtocols() should be called first.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to