You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 27
Next »
Bug Reference
TODO
Introduction
SSL Offloading feature allows loadbalancers to handle encryption/decryption of HTTP(s) traffic giving plaintext HTTP to the backend servers freeing them from the resource intensive task of handling encryption/decryption. Major loadblancers like the Netscaler and F5 have this functionality.
Goals
- A user should be able to create/update/delete SSL certs for his account.
- Certificates can be searched by using either the certificate ID or the account ID.
- Attach/Remove a certificate from a loadbalancers which support SSL offload feature.
- Add support for Netscaler to use this feature.
References
TODO
Document History
Version |
Author |
Date |
Changes |
V1.0 |
Syed Ahmed |
07-Oct-2013 |
Initial Draft |
Functional requirements & non-requirements
- Introduce a new entity SSLCerts linked to a user account
- Users should be able to Add/Delete/List certificates linked to their account
- Admin should be able to list all the certificates for all accounts
- When creating a loadbalancer if the public port is 443 and the private port is 80, then
- If the loadbalancer device supports SSL offloading,
- The loadbalncer created should be of type SSL.
- Should allow attach/remove of a SSL certificate to it.
- If the loadblancner device does not support ssl offload,
- The loadbalncer type will be TCP.
- Trying to attach a certificate to it should generate an error
- Users should be able to attach/remove their certificates to their loadbalancers.
- Deleting a SSL certificate should also remove it from all the loadbalancers it is attached to.
- If a user account gets deleted, the associated Certificates should also be deleted.
- If a loadbalancer gets deleted, the associated binding should also be deleted.
- The private key and password for the key should be stored encrypted
Architecture and Design description
TODO Document Design
New Webservice APIs for Certificate Management
This section lists the new webservice APIs for Certificate management. They are derived from their AWS Equivalant ( UploadServerCertificate, ListServerCertificates, GetServerCertificate, DeleteServerCertificate )
uploadSSLCert
Uploads a new SSL certificate-key pair
Request parameters:
- cert : Required : The public certificate, should also include the trust chain if required
- key : Required : The private key for the certificate, if the key is encrypted, password should be provided
- password: Optional : The password for the private key
New tables:
ssl_certs(id, uuid, account_id, cert, key, password)
deleteSSLCert
Deletes an existing SSL cert from cloudstack.
Request parameters:
- id : Required : The id of the certificate
updateSSLCert
updates an existing certificate-key pair
Request parameters:
- id : Required: The id of the certificate
- cert : Optional : The public certificate, should also include the trust chain if required
- key : Optional : The private key for the certificate, if the key is encrypted, password should be provided
- password: Optional : The password for the private key
New parameters to existing APIs
TODO
UI flow
Right now, this feature will only be available via the API. UI support is not yet scoped.
IP Clearance
No external dependecies are being added for this feature. All code will be developed within Cloudstack’s scope.