Apache directs https:b-site visitor to https:a-site (b-site don't have ssl)
Solution 1:
You have only a-site.com:443
VirtualHost
defined for port 443 (https) so Apache shows only the site it can find to show.
You need to define a default VirtualHost
on port 443 <VirtualHost _default_:443>
the same way as you have in 000-default.conf
(or check if you have default-ssl.conf
and enable it). You still need a TLS/SSL certificate for the default host but you can create a self-signed certificate. Debian-based systems already have one generated for you as /etc/ssl/certs/ssl-cert-snakeoil.pem
.