まず、
<VirtualHost test.com:443>
ですが、
<VirtualHost> ディレクティブ の 構文に <VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>
と記載されていて、
Addrは、次のものが利用できます:
・ バーチャルホストの IP アドレス
・ バーチャルホストの IP に対応する完全なドメイン名 (非推奨)
・ NameVirtualHost * と共に使われる、 すべての IP アドレスにマッチする文字 *
・ IP ベースのバーチャルホストで他のものにマッチしない IP アドレス のための文字列 default
とあります。
ドメイン名を指定した場合は、2つ目の バーチャルホストの IP に対応する完全なドメイン名 (非推奨)
になります。
ドメイン名で記載することが 非推奨
とされているのは、DNS と Apache にまつわる注意事項 に
何らかの理由で設定ファイルを読み込んでいるときに DNS が利用できなかった場合、 バーチャルホストは設定されません。 そして、そのバーチャルホストに対するヒットには応答がなされません
と記載されているように DNSが検索できなかった場合に VirtualHost ディレクティブが無視される可能性があるからでしょう。
検索できた場合でも DNSラウンドロビンで、同じドメインで複数サーバを運営している場合やリバースプロキシでバックエンドに転送している場合は、ドメイン名から Apache が可動しているホストのIPアドレスが返ってくる保証はありませんので、自サーバとは別のIPアドレスが取得される可能性もあります。
この場合に Apache のホストに設定されていない別のIPアドレスで設定された場合は、VirtualHost はIPが一致しないので、結果を返しません。
VirtualHost ディレクティブには、基本的に *
か 自サーバのIPアドレス
で記載することをおすすめします。