When configuring an SSL site and using a static password to allow Apache to open the certificate key, VirtualMin writes the SSLPassPhraseDialog directive into the site's VirtualHost.
The server then fails to start, reporting:
* Starting web server apache2
Syntax error on line 134 of /etc/apache2/sites-enabled/domain.tld.conf:
SSLPassPhraseDialog cannot occur within section
...fail!
According to the Apache 2 documentation this directive is only allowed in a 'server config' section.
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslpassphrasedialog
To fix it I created /etc/apache2/conf.d/ssl and moved the directive from the site's VirtualHost to this file:
SSLPassPhraseDialog exec:/etc/apache2/passphrase.1205407137.sh
According to the documentation you can include multiple entries like this and apache will try all pass phrases until one is accepted - in other words it doesn't associate a pass phrase with a domain name directly.