diff options
| author | Sean Whitton <spwhitton@spwhitton.name> | 2017-06-28 15:17:11 +0100 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2017-06-28 11:48:48 -0400 |
| commit | 083699737e0d55f6fa63cf41f4dd6fb7319f3c90 (patch) | |
| tree | 14923cbed2a6b074ac703a7ff8c577c3195431bb /src | |
| parent | b79f9d9539ea7a6d97bd259c0ecfa2f45cb1d9c8 (diff) | |
Apache.httpsVirtualHost' must create ssl/hn/ dir earlier
It turns out that IncludeOptional will error out if it is passed non-wildcard
directories that do not exist.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src')
| -rw-r--r-- | src/Propellor/Property/Apache.hs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Propellor/Property/Apache.hs b/src/Propellor/Property/Apache.hs index 554a5837..854d0eaa 100644 --- a/src/Propellor/Property/Apache.hs +++ b/src/Propellor/Property/Apache.hs @@ -189,7 +189,7 @@ httpsVirtualHost' domain docroot letos addedcfg = setup <!> teardown `requires` modEnabled "ssl" `before` setuphttps teardown = siteDisabled domain - setuphttp = siteEnabled' domain $ + setuphttp = (siteEnabled' domain $ -- The sslconffile is only created after letsencrypt gets -- the cert. The "*" is needed to make apache not error -- when the file doesn't exist. @@ -201,23 +201,23 @@ httpsVirtualHost' domain docroot letos addedcfg = setup <!> teardown , "RewriteRule ^/.well-known/(.*) - [L]" -- Everything else redirects to https , "RewriteRule ^/(.*) https://" ++ domain ++ "/$1 [L,R,NE]" - ] + ]) + `requires` File.dirExists (takeDirectory cf) setuphttps = LetsEncrypt.letsEncrypt letos domain docroot `onChange` postsetuphttps postsetuphttps = combineProperties (domain ++ " ssl cert installed") $ props - & File.dirExists (takeDirectory cf) & File.hasContent cf sslvhost `onChange` reloaded -- always reload since the cert has changed & reloaded where - cf = sslconffile "letsencrypt" sslvhost = vhost (Port 443) [ "SSLEngine on" , "SSLCertificateFile " ++ LetsEncrypt.certFile domain , "SSLCertificateKeyFile " ++ LetsEncrypt.privKeyFile domain , "SSLCertificateChainFile " ++ LetsEncrypt.chainFile domain ] + cf = sslconffile "letsencrypt" sslconffile s = "/etc/apache2/sites-available/ssl/" ++ domain ++ "/" ++ s ++ ".conf" vhost p ls = [ "<VirtualHost *:" ++ val p ++">" |
