O motivo pelo qual você precisa de hosts virtuais nesse caso é que, embora eles sirvam o mesmo conteúdo, ainda existe uma diferença entre as duas portas. Um deles tem SSL ativado, o outro não. Então você precisa explicar ao apache como saber qual config usar para qual porta, e o VirtualHost é como você faz isso.