Skip to content

Commit 68e1783

Browse files
Sina Kashipazhaustcweizhou
authored andcommitted
Port changes from 4.7.1.
1 parent 8687f2f commit 68e1783

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,18 @@ 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";
70+
5971
@Override
6072
public String[] generateConfiguration(final List<PortForwardingRuleTO> fwRules) {
6173
// Group the rules by publicip:publicport
@@ -768,6 +780,15 @@ public String[] generateConfiguration(final LoadBalancerConfigCommand lbCmd) {
768780
gSection.set(6, "\tgroup root");
769781
}
770782

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+
771792
if (s_logger.isDebugEnabled()) {
772793
for (final String s : gSection) {
773794
s_logger.debug("global section: " + s);

0 commit comments

Comments
 (0)