However, when I added the SSL certificates to the setup, I started getting errors from the client web browsers. They were complaining that the site certificate mismatched. And it was true, apache was serving up one SSL cert for all the domains.
I googled around and figured out that you can't use name based virtual hosting for SSL like you can with regular HTTP. You have to switch to IP based virtual hosting and give each SSL cert its own IP address.
In PFSense, under Firewall -> Virtual IP, I created a new external IP address for example2.com domain, since I already had an IP created for example1.com domain.
Then I went to Services -> LoadBalancer to create the pools. A pool is the list of internal servers that will handle the web requests. I had already created a pool for example1.com They were being served by 10.10.1.5, 10.10.1.6, and 10.10.1.7. I labeled it "example1 secure".