There are multiple things to consider to get this setup to work (and I dont know how much of it plesk handles... We DO have a webmaster exchange site now, as far as i know).
1) Get domain2 to point to the webserver at domain1.
Either change the
A record in domain2 to point to an IP address associated with the webserver running at domain1, or change the
A record to a
CNAME and point domain2 directly at domain1.
2) Get a valid SSL certificate for domain2
You can't use the SSL certificate from domain1 for domain2. You can't do any kind of
pre-redirect over SSL to point domain2 at domain1. You will need a valid certificate from a trusted certificate authority otherwise users will see warning about the SSL connection. You could instruct users to click the
continue anyway option in their browsers but there is a good chance that a swat team of IT Security Professionals will kick down your door and beat you with metal bats for training users to do something so insecure and silly (Read up on WHY SSL exists).
3) Configure a means to differentiate between domain1 and domain2
When an SSL connection is made, ..traditionally Apache HTTPd must provide a copt of its certificate before any information is exchanged. At this point, the only thing Apache knows, is the remote IP and the local Apache IP and the relecant ports (and various other TCP headers that are largely unimportant to us). Because Apache knows nothing about the domain name that was used it must attempt to serve a valid certificate for an unknown domain (Apache's Strategy: Use the first one listed in the config).
SSL connections are generally made on port 443. So generally speaking, most external SSL connections to your website will come in on TCP port 443. The remote IP and port are chosen by the client, so in most cases, you can only control which IP the request comes to. Assigning separate IP addresses to domain1 and domain2 is the
easiest way to get apache to recognize which domain is being used before all the fancy SSL handshaking and HTTP headers come through.
Many people that have websites don't have the luxury of owning multiple IP addresses. The dirtiest and most
useless solution to this issue is to run domain2 at domain1's IP but on a different port (IE: 8443). This causes all sorts of issues. The biggest is: https://domain2.com/ will send requests to domain1 and raise all kinds of SSL errors as a result. This is because with no port specified in the URL and HTTPS listed as the protocol to use, the client browser happily assumes you wanted port 443. No one uses this method and keeps their sanity. (Ir if they do, we haven't heard of them).
The solution that basically everyone uses is Server Name Indication (SNI). This is an extension to the TLS (See: SSL) protocol that essentially adds a Host: header to the request. Read about it here: http://en.wikipedia.org/wiki/Server_Name_Indication . The Relevant RFCs are listed in the sources if you care.
Plesk probably supports SNI but again, I don't play with plesk. Configuring SNI with plesk should be a googlable affair.
4) Create separate virtual hosts in apache for the domains
This is important because of the above SSL considerations. You can't simply use Apache's
ServerAlias because apache will serve the wrong certificate for one of the domains. Apache will need Distinct Virtual Hosts that point to the same
DocumentRoot. My guess is plesk handles this via a
Add new host or
add new domain option.
I Never said I needed SSL on domain2!!!!!
Ok. Good news (If that is the case). Create a CNAME in the DNS for domain2 that points to Domain1. Just know that: You will lay awake at night wondering if users are ever typing: https://domain2.com into the address bar manually and seeing the SSL warning.
And finally, I'd love to give you specific Plesk instructions with screenshots, but I don't know Plesk and I think you (and anyone researching this in the future) might benefit more from a little fundamental knowledge on the backend operations than the point and click solutions. Good Luck. :)