К сожалению вы не понимаете работы https ;)
По умолчанию апачь для экономии белых IP научился ложить все сайты на один IP и на один же порт, для этого в нем придумали костыль, он берет host из рефери и подставляет нужный конфиг
А вот при работе через https
Соединение как вы понимаете устанавливается ДО получения этого рефери.
В следствие этого нет технической возможности получить вначале host а по нему найти конфиг.
По этому ( не спршивайте меня почему так это загадка покрытая мраком)
вместо того чтобы сказать я честно не знаю где взять ключи, он ищет БЛИЖАЙШИЕ ключи которые он находит ( по алфавиту и подставляет их везде
А поскольку порт слушается то ВСЕ сайты на сервере получают 443 порт, как следствие единственные ключи на всех ;) ну и да прицепом документ рут может хватануть это ваще номер.
ps
Перестановка мест слагаемых в этом случае как-раз таки все решает ;)
1. Удалите все ключи типа дефолтные ssl.conf, убедитесь что нет никаких левых ключей.
2. Каждому сайту все свое, попробуйте запустить отдельно субдомен без первого проверьте что все ключи на нем работают.
3. на сайты вовсе без https поставьте заглушку которая будет подставлять принудительно ключи и отдает 404.
4. как опциональный третьего пункта включите ssl.conf но зазвав его 000-ssl.conf гыгы ;) теперь его ключи будут первыми попавшийся ;)
5. если уже совсем ничего не помогает то можно развести их по IP тогда у них выхода не будет, поскольку будут сллушаться разные порты на разных айпи
Например так
12.34.56.78:443
12.34.56.79:443
или если у вас nginx +apache
12.34.56.78:443
12.34.56.78:444