I'm running several e-commerce websites, each is processed by the same php code which loads different configuration based on the domain that it is being accessed from.
I'm trying to use OpsWorks to make scaling easier but I've run into a roadblock, a layer can only have 1 ELB attached to it. Since each site has its own SSL certificate I'm not sure how I can use the same set of servers to handle multiple ssl enabled domains under OpsWorks?
There are 2 ways you can go about dealing with this. The first is by use of an Application Load Balancer, but as you've mentioned in your comments you don't want the risk of going down the SNI route in case it blocks customers - which is fine, Opsworks doesn't "officially" support these right now anyway (there's a recipe to make them work, but I've not tried it).
The second way, and is a route I'm currently going down myself, is to use a single Classic ELB (as you are now), and using Amazon's Certificate Manager to create a single SSL certificate with multiple domain names. ACM is free to use and it should be fit for your purpose.
Use the ACM console to request a new certificate. Enter as many domains as you need to have on it, then go through the verification process for each one (it sends postmaster/hostmaster/admin of each domain an email with a link to click on). Once you've done this and the certificate is issued, associate it to your HTTPS listener on your ELB. Once you've done this, your ELB will be able to serve traffic for all the given domains without the use of SNI.