Skip to content

Commit 2c0450b

Browse files
Sina Kashipazhaustcweizhou
authored andcommitted
Fixed missed ssl restriction of haproxy.
1 parent d1a2ea7 commit 2c0450b

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

core/src/main/java/com/cloud/network/HAProxyConfigurator.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ public class HAProxyConfigurator implements LoadBalancerConfigurator {
5656
private static String[] defaultListen = {"listen vmops", "\tbind 0.0.0.0:9", "\toption 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\thttp-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

Comments
 (0)