I did this recently for a client. A lot of it will depend on your host, though.
Most hosts are set up to only listen for traffic on port 80. SSL requires that Apache listen on port 443. You're seeing the default server page likely because Apache isn't set up to forward traffic for those subdomains.
You need to contact your host and make sure that traffic for https://site.example.com is pointed to the same directory as http://site.example.com. If you're using WordPress Multisite with subdomains this should be easy enough to set up. Each subdomain should have its own folder on the server ... it's just a matter of making the server point traffic for the SSL version to the same location as the non-SSL version.
If, however, you're using WordPress Multisite with subdirectories and mapping subdomains to those subdirectories (which is what my client was doing) you're out of luck. Shared hosts aren't set up to allow SSL mapping that way because it requires specific
VirtualHost declarations in Apache.
This is the problem my client faced - traffic to https://site.example.com was redirected to https://example.com because Apache couldn't handle it.