It seems that I was getting wrong the virtual host configuration file to redirect all http requests to https
This is my current working configuration:
/etc/apache2/sites-available/a.com.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName a.com
ServerAlias *.a.com
DocumentRoot /var/www/a.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =a1.a.com [OR]
RewriteCond %{SERVER_NAME} =a.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
/etc/apache2/sites-available/a.com-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName a.com
ServerAlias *.a.com
DocumentRoot /var/www/a.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/a.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/a.com/privkey.pem
</VirtualHost>
</IfModule>
However it is required to update the virtual host configuration RewriteCond %{SERVER_NAME} =a1.a.com [OR]
for every subdomain I need, therefore the process is not automated.