Add https support for git.osm.org
authorTom Hughes <tom@compton.nu>
Sat, 10 Feb 2018 17:42:52 +0000 (17:42 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 10 Feb 2018 17:57:35 +0000 (17:57 +0000)
cookbooks/git/recipes/web.rb
cookbooks/git/templates/default/apache.erb
roles/git.rb

index 09954bf..8eb83bf 100644 (file)
@@ -33,13 +33,14 @@ template "/etc/gitweb.conf" do
 end
 
 ssl_certificate node[:git][:host] do
-  domains node[:git][:host]
+  domains [node[:git][:host]] + Array(node[:git][:aliases])
   notifies :reload, "service[apache2]"
 end
 
 apache_site node[:git][:host] do
   template "apache.erb"
   directory git_directory
+  variables :aliases => Array(node[:git][:aliases])
 end
 
 template "#{git_directory}/robots.txt" do
index 21e0aa0..c7f85c8 100644 (file)
@@ -1,38 +1,60 @@
 # DO NOT EDIT - This file is being maintained by Chef
 
 <VirtualHost *:80>
-       ServerName <%= @name %>
-       ServerAdmin webmaster@openstreetmap.org
+        ServerName <%= @name %>
+<% @aliases.each do |alias_name| -%>
+        ServerAlias <%= alias_name %>
+<% end -%>
+        ServerAdmin webmaster@openstreetmap.org
 
-       CustomLog /var/log/apache2/<%= @name %>-access.log combined
-       ErrorLog /var/log/apache2/<%= @name %>-error.log
+        CustomLog /var/log/apache2/<%= @name %>-access.log combined
+        ErrorLog /var/log/apache2/<%= @name %>-error.log
 
-       RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
-       RedirectPermanent / https://<%= @name %>/
+        RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
+        RedirectPermanent / https://<%= @name %>/
 </VirtualHost>
 
+<% unless @aliases.empty? -%>
 <VirtualHost *:443>
-       ServerName <%= @name %>
-       ServerAdmin webmaster@openstreetmap.org
+        ServerName <%= @aliases.first %>
+<% @aliases.slice(1..-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
+        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
+        CustomLog /var/log/apache2/<%= @name %>-access.log combined
+        ErrorLog /var/log/apache2/<%= @name %>-error.log
 
-       DocumentRoot <%= @directory %>
-       HeaderName HEADER
-       Alias /gitweb /usr/share/gitweb
-       Alias /git /var/cache/git
-       ScriptAlias /gitweb.cgi /usr/lib/cgi-bin/gitweb.cgi
+        RedirectPermanent / https://<%= @name %>/
+</VirtualHost>
+
+<% end -%>
+<VirtualHost *:443>
+        ServerName <%= @name %>
+        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
+
+        DocumentRoot <%= @directory %>
+        HeaderName HEADER
+        Alias /gitweb /usr/share/gitweb
+        Alias /git /var/cache/git
+        ScriptAlias /gitweb.cgi /usr/lib/cgi-bin/gitweb.cgi
 
-       RewriteEngine On
-       RewriteRule ^/$ /gitweb.cgi%{REQUEST_URI} [L,PT]
-       RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /gitweb.cgi%{REQUEST_URI} [L,PT]
+        RewriteEngine On
+        RewriteRule ^/$ /gitweb.cgi%{REQUEST_URI} [L,PT]
+        RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /gitweb.cgi%{REQUEST_URI} [L,PT]
 </VirtualHost>
 
 <Directory <%= @directory %>>
-       Require all granted
+        Require all granted
 </Directory>
index 048490a..09b95cb 100644 (file)
@@ -20,6 +20,7 @@ default_attributes(
   },
   :git => {
     :host => "git.openstreetmap.org",
+    :aliases => ["git.osm.org"],
     :backup => "git"
   }
 )