Source:
<code>protected SslContextFactory getSSLContext( Map args) { try { String privateKeyPassword; privateKeyPassword = Option.HTTPS_PRIVATE_KEY_PASSWORD.get(args, keystorePassword); KeyManagerFactory kmf = KeyManagerFactory.getInstance( Option.HTTPS_KEY_MANAGER_TYPE.get( args)); kmf.init(keystore, keystorePassword.toCharArray()); Logger.log(Logger.FULL_DEBUG, SSL_RESOURCES, "HttpsListener.KeyCount", keystore.size() + ""); for ( Enumeration e = keystore.aliases(); e.hasMoreElements();) { String alias = (String) e.nextElement(); Logger.log(Logger.FULL_DEBUG, SSL_RESOURCES, "HttpsListener.KeyFound", alias, keystore.getCertificate(alias) + ""); } SslContextFactory ssl = new SslContextFactory(); ssl.setKeyStore(keystore); ssl.setKeyStorePassword(keystorePassword); ssl.setKeyManagerPassword(privateKeyPassword); ssl.setKeyManagerFactoryAlgorithm(Option.HTTPS_KEY_MANAGER_TYPE.get(args)); ssl.setCertAlias(Option.HTTPS_CERTIFICATE_ALIAS.get(args)); ssl.setExcludeProtocols("SSLv3", "SSLv2", "SSLv2Hello"); String excludeCiphers = Option.HTTPS_EXCLUDE_CIPHER_SUITES.get( args ); <START> if( StringUtil.isNotBlank(excludeCiphers)) { <END> String[] cipherSuites = excludeCiphers.split(","); ssl.setExcludeCipherSuites(cipherSuites); } Logger.log( Logger.INFO, SSL_RESOURCES, "HttpsListener.ExcludeCiphers", Arrays.asList(ssl.getExcludeCipherSuites())); ssl.setNeedClientAuth(Option.HTTPS_VERIFY_CLIENT.get(args)); return ssl; } catch (Throwable err) { throw new WinstoneException(SSL_RESOURCES .getString("HttpsListener.ErrorGettingContext"), err); } }</code><technical_language>I worth mentioning in description of option provide "no exclusion". Passing empty string default exclusion in place</technical_language>

Target:
protected SslContextFactory getSSLContext( Map args) { try { String privateKeyPassword; privateKeyPassword = Option.HTTPS_PRIVATE_KEY_PASSWORD.get(args, keystorePassword); KeyManagerFactory kmf = KeyManagerFactory.getInstance( Option.HTTPS_KEY_MANAGER_TYPE.get( args)); kmf.init(keystore, keystorePassword.toCharArray()); Logger.log(Logger.FULL_DEBUG, SSL_RESOURCES, "HttpsListener.KeyCount", keystore.size() + ""); for ( Enumeration e = keystore.aliases(); e.hasMoreElements();) { String alias = (String) e.nextElement(); Logger.log(Logger.FULL_DEBUG, SSL_RESOURCES, "HttpsListener.KeyFound", alias, keystore.getCertificate(alias) + ""); } SslContextFactory ssl = new SslContextFactory(); ssl.setKeyStore(keystore); ssl.setKeyStorePassword(keystorePassword); ssl.setKeyManagerPassword(privateKeyPassword); ssl.setKeyManagerFactoryAlgorithm(Option.HTTPS_KEY_MANAGER_TYPE.get(args)); ssl.setCertAlias(Option.HTTPS_CERTIFICATE_ALIAS.get(args)); ssl.setExcludeProtocols("SSLv3", "SSLv2", "SSLv2Hello"); String excludeCiphers = Option.HTTPS_EXCLUDE_CIPHER_SUITES.get(args); if(excludeCiphers!=null&&excludeCiphers.length()>0) { String[] cipherSuites = excludeCiphers.split(","); ssl.setExcludeCipherSuites(cipherSuites); } Logger.log( Logger.INFO, SSL_RESOURCES, "HttpsListener.ExcludeCiphers", Arrays.asList(ssl.getExcludeCipherSuites())); ssl.setNeedClientAuth(Option.HTTPS_VERIFY_CLIENT.get(args)); return ssl; } catch (Throwable err) { throw new WinstoneException(SSL_RESOURCES .getString("HttpsListener.ErrorGettingContext"), err); } }