"Server should be SSL-aware but has no certificate configured"

I think eltrai is on the right path but I would remove the first <VirtualHost> block and use ServerAlias in the second

<VirtualHost _default_:443>
    ServerAdmin admin@localhost
    ServerName domain.tld
    ServerAlias www.domain.tld

You can add your RedirectMatch later in that same block to redirect from www to non.


One more thing to check that wasn't mentioned in the previous answers.

If you have "SSLEngine on" anywhere in your global config (basically anywhere outside of the VirtualHost and similar blocks) and you do not have a SSLCertificateFile directive also defined globally, apache will choke on this before it even gets to the virtual host and you will get this error.

The error message is actually correct, but doesn't mention WHICH server has no certificate.


Your first virtualhost (for the www.domain.tld) does not have SSL enabled, even though it's on port 443.

You need to add SSLEngine, SSLCertificateFile, ... as in the second one, otherwise no https access will be possible for www.domain.tld.

I'm not too sure it should cause a flat refusal to start, however...