node[:osqa][:sites].each do |site|
site_name = site[:name]
+ site_aliases = site[:aliases] || []
directory = site[:directory] || "/srv/#{site_name}"
site_user = site[:user] || node[:osqa][:user]
site_user = Etc.getpwuid(site_user).name if site_user.is_a?(Integer)
backup_name = site[:backup]
ssl_certificate site_name do
- domains site_name
+ domains [site_name] + site_aliases
notifies :reload, "service[apache2]"
end
apache_site site_name do
template "apache.erb"
directory directory
- variables :user => site_user, :group => site_group
+ variables :user => site_user, :group => site_group, :aliases => site_aliases
end
directory directory do
<VirtualHost *:80>
ServerName <%= @name %>
+ <% @aliases.each do |alias_name| -%>
+ ServerAlias <%= alias_name %>
+ <% end -%>
ServerAdmin webmaster@openstreetmap.org
CustomLog /var/log/apache2/<%= @name %>-access.log combined
RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
RedirectPermanent / https://<%= @name %>/
</VirtualHost>
+<% unless @aliases.empty? -%>
+
+<VirtualHost *:443>
+ ServerName <%= @aliases.first %>
+<% @aliases.drop(1).each do |alias_name| -%>
+ ServerAlias <%= alias_name %>
+<% end -%>
+ ServerAdmin webmaster@openstreetmap.org
+
+ SSLEngine on
+ SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
+ SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
+
+ CustomLog /var/log/apache2/<%= @name %>-access.log combined
+ ErrorLog /var/log/apache2/<%= @name %>-error.log
+
+ RedirectPermanent / https://<%= @name %>/
+</VirtualHost>
+<% end -%>
<VirtualHost *:443>
ServerName <%= @name %>
},
:osqa => {
:sites => [
- { :name => "help.openstreetmap.org", :backup => "osqa" }
+ { :name => "help.openstreetmap.org",
+ :aliases => ["help.osm.org"],
+ :backup => "osqa" }
]
}
)