Isso deve ser bem fácil. Você só precisa criar blocos de servidores para cada subdomínio, obter um certificado SSL para o subdomínio (a menos que o certificado principal seja um certificado curinga) e copiar os blocos de local aplicáveis com alguns ajustes.
Algo como isso deve funcionar, embora eu não tenha testado, então quase certamente precisará de alguns ajustes.
server {
listen 80;
server_name app1.server.com;
return 301 https://app1.server.com/$request_uri; #force https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/app1.server.com/cert.pem; # changed
ssl_certificate_key /etc/ssl/app1.server.com/priv.pem; # changed
server_name app1.server.com; # changed
location / { # changed
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://app1_servers/app1;
proxy_redirect http://$host https://$host;
proxy_set_header Host $host;
}