Livio A created CLOUDSTACK-9499:
-----------------------------------

             Summary: HAProxy [native virtual CS Loadbalancer] - SSL offload 
support
                 Key: CLOUDSTACK-9499
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9499
             Project: CloudStack
          Issue Type: Improvement
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: API, Network Devices
    Affects Versions: 4.5.2
            Reporter: Livio A


Hi,

SSL offload support in Cloudstack and documented here: 
https://cwiki.apache.org/confluence/display/CLOUDSTACK/SSL+Termination+Support 
is currently only available to NetScaler LB devices.

If we try to attach a certificate to a CloudStack Virtual Router LB: 
assignCertToLoadBalancer&certid=3b0621cd-203f-46a9-b3ad-97e7e70c77ab&lbruleid=2556
It returns the following error:
2016-09-05 18:32:16,244 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] 
(API-Job-Executor-111:ctx-4f7864f6 job-48170) Complete async job-48170, 
jobStatus: FAILED, resultCode: 530, result: 
org.apache.cloudstack.api.response.ExceptionResponse/null/{"uuidList":[],"errorcode":431,"errortext":"Ssl
 termination not supported by the loadbalancer"} 

The CloudStack VR uses haproxy for LB and ssl offloading is something haproxy 
can handle.

The standard type of configuration issued by cloudstack:

listen 8_8_8_8-443 8.8.8.8:443
                balance roundrobin
                server 8_8_8_8-443_0 192.168.1.2:443 check
                server 8_8_8_8-443_1 192.168.1.3:443 check

By default CS configures it's loadbalancers in tcp mode. To enable SSL 
offloading we would however need this kind of configuration:

listen 8_8_8_8-443
                bind 8.8.8.8:443 ssl crt 
/etc/haproxy/ssl-cert-3b0621cd-203f-46a9-b3ad-97e7e70c77ab.pem crt 
/etc/haproxy/ssl-cert-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.pem
                mode http
                balance roundrobin
                server 8_8_8_8-443_0 192.168.1.2:443 check ssl verify none
                server 8_8_8_8-443_1 192.168.1.3:443 check ssl verify none

This could be implemented by modifying the API and the HAProxyConfigurator 
script. Also, in my example configuration I've put two certificates, HAProxy 
manages this pretty well so it would be nice to be able to assign more than one 
certificate to a LB.

Kind regards,
Alessandro



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to