Человек, судя по посту, заинтересован в Win-администрировании, так что это неконструктивно имхо.
Для MS да, неплохо бы иметь соответствующие сретификаты, но это только малая часть. Если вы сами внедряли какие-либо технологии MS — AD/Exchange/MsSQL — то тут станет понятнее, что именно более интересно, во что стоит погружаться глубже.
если у вас 1000 приложений, то эта задача просто должна быть решена иначе. Все очень сильно зависит от того, что дожно отвечать на app$.domain.com, от этого будет зависеть реализация.
На самом деле имея описание можно было бы подсказать более детально.
ну конечно же 1.2.3.4 и 1.2.3.5 это ваши внешние адреса, на которые ссылается app1.domain.com и app2.domain.com. А 10.0.0.1 и 10.0.0.2 — это адреса бекендов, на которые должны быть переадресованы ответы, приходящие на 1.2.3.4 и 1.2.3.5 соответственно.
Дальше все уже платформо- и админо-зависимо.
Это можно сделать как на уровне сетевого экрана (iptables/pf), так и на уровне какого-либо проксирующего приложения, к примеру — haproxy. iptables -t nat -A PREROUTING -p tcp -m tcp --d 1.2.3.4 --dport 1234 -j DNAT --to-destination 10.0.0.1:1234
iptables -t nat -A PREROUTING -p tcp -m tcp --d 1.2.3.5 --dport 1234 -j DNAT --to-destination 10.0.0.2:1234
Если это просто произвольное приложение (например — БД), то на стороне сервера в не можете узнать на какое из DNS-имен пришел запрос, так как все преобразование имен в адреса будет происходить на клиенте.
Как вариант — выкупить у хостера несколько ip-адресов и проксировать на уровне tcp/ip запросы от внешних клиентов на бекенды.