]> git.openstreetmap.org Git - chef.git/blob - cookbooks/wordpress/templates/default/apache.erb
wordpress: enable SSL when no aliases are specified
[chef.git] / cookbooks / wordpress / templates / default / apache.erb
1 # DO NOT EDIT - This file is being maintained by Chef
2
3 <VirtualHost *:80>
4   ServerName <%= @name %>
5 <% @aliases.each do |alias_name| -%>
6   ServerAlias <%= alias_name %>
7 <% end -%>
8
9   ServerAdmin webmaster@openstreetmap.org
10
11   CustomLog /var/log/apache2/<%= @name %>-access.log combined
12   ErrorLog /var/log/apache2/<%= @name %>-error.log
13
14   RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
15   RedirectPermanent / https://<%= @name %>/
16 </VirtualHost>
17
18 <VirtualHost *:443>
19   ServerName <%= @name %>
20 <% @aliases.each do |alias_name| -%>
21   ServerAlias <%= alias_name %>
22 <% end -%>
23
24   ServerAdmin webmaster@openstreetmap.org
25
26   SSLEngine on
27   SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
28   SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
29
30   CustomLog /var/log/apache2/<%= @name %>-access.log combined
31   ErrorLog /var/log/apache2/<%= @name %>-error.log
32
33   DocumentRoot <%= @directory %>
34 <% @urls.each do |url,directory| -%>
35   Alias <%= url %> <%= directory %>
36   <Directory <%= directory %>>
37     AllowOverride None
38     Require all granted
39     <FilesMatch ".+\.ph(ar|p|tml)$">
40       SetHandler None
41     </FilesMatch>
42   </Directory>
43 <% end -%>
44
45   <Directory <%= @directory %>>
46     RewriteEngine on
47
48     RewriteRule ^wp-admin/includes/ - [F,L]
49     RewriteRule !^wp-includes/ - [S=3]
50     RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
51     RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
52     RewriteRule ^wp-includes/theme-compat/ - [F,L]
53     RewriteRule ^readme\.html$ [F,L]
54     RewriteRule ^index\.php$ - [L]
55     RewriteCond %{REQUEST_FILENAME} !-f
56     RewriteCond %{REQUEST_FILENAME} !-d
57     RewriteRule . /index.php [L]
58
59     Options -Indexes
60     AllowOverride AuthConfig
61
62     Require all granted
63
64     # https://www.wp-pay.org/http-authorization-header-missing/
65     CGIPassAuth on
66
67     <FilesMatch ".+\.ph(ar|p|tml)$">
68       SetHandler "proxy:unix:/run/php/php-<%= @name %>-fpm.sock|fcgi://127.0.0.1"
69     </FilesMatch>
70   </Directory>
71
72   <Files <%= @directory %>/wp-config.php>
73     Require all denied
74   </Files>
75
76   <Directory <%= @directory %>/uploads>
77     AllowOverride None
78     AddType text/plain .html .htm .shtml
79     <FilesMatch ".+\.ph(ar|p|tml)$">
80       SetHandler None
81     </FilesMatch>
82   </Directory>
83
84   <Directory ~ "\.svn">
85     Require all denied
86   </Directory>
87
88   <Directory ~ "\.git">
89     Require all denied
90   </Directory>
91
92   <Files ~ "(?<!robots|ads|security|humans)\.(txt|md)$">
93     Require all denied
94   </Files>
95
96   <Files ~ "~$">
97     Require all denied
98   </Files>
99
100   <Files "xmlrpc.php">
101     Require all denied
102   </Files>
103
104 </VirtualHost>