@@ -56,13 +56,13 @@ public class HAProxyConfigurator implements LoadBalancerConfigurator {
5656 private static String [] defaultListen = {"listen vmops" , "\t bind 0.0.0.0:9" , "\t option transparent" };
5757 private static final String SSL_CERTS_DIR = "/etc/ssl/cloudstack/" ;
5858
59- private static String sslConfigurationOld = "no-sslv3 no-tls-tickets ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256" +
59+ private static String sslConfigurationOld = " no-sslv3 no-tls-tickets ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256" +
6060 ":ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256" +
6161 ":DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA" +
6262 ":ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256" +
6363 ":AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA" ;
6464
65- private static String sslConfigurationIntermediate = "no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ciphers ECDHE-ECDSA-AES128-GCM-SHA256" +
65+ private static String sslConfigurationIntermediate = " no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ciphers ECDHE-ECDSA-AES128-GCM-SHA256" +
6666 ":ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305" +
6767 ":DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" ;
6868
@@ -483,6 +483,16 @@ private String getLbSubRuleForStickiness(final LoadBalancerTO lbTO) {
483483 return sb .toString ();
484484 }
485485
486+ private String getCustomizedSslConfigs (HashMap <String , String > lbConfigsMap ){
487+ String lbSslConfiguration = lbConfigsMap .get (LoadBalancerConfigKey .LbSslConfiguration .key ());
488+ if ("old" .equalsIgnoreCase (lbSslConfiguration )) {
489+ return sslConfigurationOld ;
490+ } else if ("intermediate" .equalsIgnoreCase (lbSslConfiguration )) {
491+ return sslConfigurationIntermediate ;
492+ }
493+ return "" ;
494+ }
495+
486496 private List <String > getRulesForPool (final LoadBalancerTO lbTO , boolean keepAliveEnabled , final String networkCidr , HashMap <String , String > networkLbConfigsMap ) {
487497 StringBuilder sb = new StringBuilder ();
488498 final String poolName = sb .append (lbTO .getSrcIp ().replace ("." , "_" )).append ('-' ).append (lbTO .getSrcPort ()).toString ();
@@ -523,13 +533,8 @@ private List<String> getRulesForPool(final LoadBalancerTO lbTO, boolean keepAliv
523533 sb .append (" alpn h2,http/1.1" );
524534 }
525535
526- // Sina
527- String lbSslConfiguration = lbConfigsMap .get (LoadBalancerConfigKey .LbSslConfiguration .key ());
528- if ("old" .equalsIgnoreCase (lbSslConfiguration )) {
529- sb .append (" " ).append (sslConfigurationOld );
530- } else if ("intermediate" .equalsIgnoreCase (lbSslConfiguration )) {
531- sb .append (" " ).append (sslConfigurationIntermediate );
532- }
536+ sb .append (getCustomizedSslConfigs (lbConfigsMap ));
537+
533538 sb .append ("\n \t http-request add-header X-Forwarded-Proto https" );
534539 }
535540 frontendConfigs .add (sb .toString ());
@@ -599,6 +604,9 @@ private List<String> getRulesForPool(final LoadBalancerTO lbTO, boolean keepAliv
599604 sb .append (" check" );
600605 }
601606
607+ sb .append (getCustomizedSslConfigs (lbConfigsMap ));
608+
609+
602610 if (lbConfigsMap .get (LoadBalancerConfigKey .LbServerMaxConn .key ()) != null ) {
603611 long maxConnEach = Long .parseLong (lbConfigsMap .get (LoadBalancerConfigKey .LbServerMaxConn .key ()));
604612 if (maxConnEach > 0 ) {
0 commit comments