OK I have included both HTTP & HTTPS sections in a single config file as show below, no difference to the original problem it is still serving HTTP over port 443.
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@buzzcloud.global
ServerName buzzcloud.global
ServerAlias www.buzzcloud.global buzzcloud.local
DocumentRoot /webserver/buzzcloud.global/public_html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
LogLevel debug ssl:debug
ErrorLog /webserver/buzzcloud.global/logs/buzzcloud-HTTPS-error.log
CustomLog /webserver/buzzcloud.global/logs/buzzcloud-HTTPS-access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /webserver/buzzcloud.global/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /etc/letsencrypt/live/buzzcloud.global/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/buzzcloud.global/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
vim: syntax=apache ts=4 sw=4 sts=4 sr noet
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName buzzcloud.global
ServerAlias www.buzzcloud.global buzzcloud.local buzzcloud
Redirect permanent / https://buzzcloud.global
ServerAdmin webmaster@buzzcloud.global
DocumentRoot /webserver/buzzcloud.global/public_html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
<Directory /webserver/buzzcloud.global/public_html>
Options -Indexes -FollowSymLinks +MultiViews
AllowOverride none
Require all granted
</Directory>
ErrorLog /webserver/buzzcloud.global/logs/buzzcloud-HTTP-error.log
CustomLog /webserver/buzzcloud.global/logs/buzzcloud-HTTP-access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
So far as I can see the first section covers HTTPS and it has port 443, the second section is for HTTP and it provides port 80. Are there any other files that might override this .conf file under default apache2 distributions?