It appears that ELBs can only handle a single certificate.
If you are using a wildcard certificate, and all domains are covered by the wildcard, or if you are using a multi-domain certificate (also called UCC certificate), that can also be used.
Otherwise, if you have multiple certificates for multiple domains, your options are:
Certificates on ELBs, one ELB per certificate
Under this scenario, each certificate gets its own ELB. The ELBs still point to the same instances. You install the certificate on the ELB and it handles SSL termination.
Pros: much easier when certificates are revoked/replaced/updated. Also frees instances from managing SSL connections. Theoretically it is also more secure, since most likely the ELBs are going to be less open to potential vulnerabilities.
Cons: more expensive (one ELB per certificate instead of just one ELB). Autoscaling may be unpredictable, with an autoscaling group associated with one ELB potentially making different decisions than an autoscaling group associated with another ELB.
Certificates on Instances
Have the ELB pass through the SSL request rather than terminating it. You install all the certificates you need on each instance and set them up to listen to port 443 and handle secure connections.
Pros: probably slightly cheaper even with the increased load from SSL processing. More control over what is going on with your instances.
Cons: Really time consuming to update certificates when they are revoked/updated/created. You have to add certificate deployment to your deployment process. If your instances launch from AMIs and the certificates are stored on the AMI, you have to generate a new AMI with those certificates and terminate the instances with invalid certificates. If you have only a couple of instances, replacing the certificates manually on each instance using rsync or scp is an option but a pretty ugly one.