Skip to content

Commit d1a2ea7

Browse files
Sina Kashipazhaustcweizhou
authored andcommitted
Move old and intermediate configuration to HAProxy frontend.
1 parent 68e1783 commit d1a2ea7

File tree

1 file changed

+17
-20
lines changed

1 file changed

+17
-20
lines changed

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

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,15 @@ 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-
// https://ssl-config.mozilla.org/#server=haproxy&version=1.8&config=old&openssl=1.1.1d&guideline=5.4
60-
private static String sslConfigurationOld = "\n\tssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256: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:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA" +
61-
"\n\tssl-default-bind-options no-sslv3 no-tls-tickets" +
62-
"\n\n\tssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256: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:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA" +
63-
"\n\tssl-default-server-options no-sslv3 no-tls-tickets";
64-
65-
// https://ssl-config.mozilla.org/#server=haproxy&version=1.8&config=intermediate&openssl=1.1.1d&guideline=5.4
66-
private static String sslConfigurationIntermediate = "\n\tssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" +
67-
"\n\tssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets" +
68-
"\n\n\tssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" +
69-
"\n\tssl-default-server-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets";
59+
private static String sslConfigurationOld = "no-sslv3 no-tls-tickets ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256" +
60+
":ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256" +
61+
":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" +
62+
":ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256" +
63+
":AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA";
64+
65+
private static String sslConfigurationIntermediate = "no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ciphers ECDHE-ECDSA-AES128-GCM-SHA256" +
66+
":ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305" +
67+
":DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
7068

7169
@Override
7270
public String[] generateConfiguration(final List<PortForwardingRuleTO> fwRules) {
@@ -524,6 +522,14 @@ private List<String> getRulesForPool(final LoadBalancerTO lbTO, boolean keepAliv
524522
if ("true".equalsIgnoreCase(lbConfigsMap.get(LoadBalancerConfigKey.LbHttp2.key()))) {
525523
sb.append(" alpn h2,http/1.1");
526524
}
525+
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+
}
527533
sb.append("\n\thttp-request add-header X-Forwarded-Proto https");
528534
}
529535
frontendConfigs.add(sb.toString());
@@ -780,15 +786,6 @@ public String[] generateConfiguration(final LoadBalancerConfigCommand lbCmd) {
780786
gSection.set(6, "\tgroup root");
781787
}
782788

783-
String sslConfiguration = LoadBalancerConfigKey.LbSslConfiguration.key();
784-
if (sslConfiguration != null && sslConfiguration.equalsIgnoreCase("old")){
785-
gSection.add(sslConfigurationOld);
786-
gSection.add("\n\tssl-dh-param-file /root/dhparam.pem.old");
787-
} else if (sslConfiguration == null || ! sslConfiguration.equalsIgnoreCase("none")){
788-
gSection.add(sslConfigurationIntermediate);
789-
gSection.add("\n\tssl-dh-param-file /root/dhparam.pem.intermediate");
790-
}
791-
792789
if (s_logger.isDebugEnabled()) {
793790
for (final String s : gSection) {
794791
s_logger.debug("global section: " + s);

0 commit comments

Comments
 (0)