Опция а) как написал Руслан, тебе нужен wildcard сертификат, который будет годен для "сайт.ру" и "*.сайт.ру"
Опция б) настраиваешь город.сайт.ру физически на тот же путь, как и сайт.ру, но в настройках вебсервера подключаешь разные сертификаты на каждый домен
Пример:
SSLEngine on
SSLStrictSNIVHostCheck on
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:-MEDIUM
<VirtualHost *:80>
DocumentRoot "/var/websiteexample/public/www"
ServerName www.site.ru
ServerAlias site.ru
<Directory "/var/websiteexample/public/www">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/var/websiteexample/public/www"
ServerName www.site.ru
ServerAlias site.ru
#You might also need: SSLCertificateChainFile
SSLCertificateFile /root/www.site.ru.crt
SSLCertificateKeyFile /root/www.site.ru.key
<Directory "/var/websiteexample/public/www">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/var/websiteexample/public/www"
ServerName moscow.site.ru
SSLCertificateFile /root/moscow.site.ru.pem
SSLCertificateKeyFile /root/moscow.site.ru.key
<Directory "/var/websiteexample/public/www">
allow from all
Options +Indexes
</Directory>
</VirtualHost>