Rework certificate handling
authorTom Hughes <tom@compton.nu>
Thu, 17 Oct 2013 17:29:23 +0000 (18:29 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 17 Oct 2013 17:38:37 +0000 (18:38 +0100)
cookbooks/apache/recipes/ssl.rb
cookbooks/ssl/attributes/default.rb
cookbooks/ssl/recipes/default.rb
cookbooks/tilecache/metadata.rb
cookbooks/tilecache/recipes/default.rb
roles/tilecache.rb

index 37bf822..a31ac0c 100644 (file)
@@ -17,6 +17,8 @@
 # limitations under the License.
 #
 
+node.default[:ssl][:certificate] = node[:ssl][:certificate] | [ "openstreetmap" ]
+
 include_recipe "apache"
 include_recipe "ssl"
 
index c9f1dcd..d7a4147 100644 (file)
@@ -1 +1 @@
-default[:ssl][:certificate] = "openstreetmap"
+default[:ssl][:certificates] = []
index a3a2708..81dea8b 100644 (file)
@@ -29,17 +29,29 @@ cookbook_file "/etc/ssl/certs/rapidssl.pem" do
   backup false
 end
 
-cookbook_file "/etc/ssl/certs/#{node[:ssl][:certificate]}.pem" do
-  owner "root"
-  group "root"
-  mode 0444
-  backup false
-end
+[ "openstreetmap", "tile.openstreetmap" ].each do |certificate|
+  if node[:ssl][:certificates].include?(certificate)
+    cookbook_file "/etc/ssl/certs/#{certificate}.pem" do
+      owner "root"
+      group "root"
+      mode 0444
+      backup false
+    end
 
-file "/etc/ssl/private/#{node[:ssl][:certificate]}.key" do
-  owner "root"
-  group "ssl-cert"
-  mode 0440
-  content keys[node[:ssl][:certificate]].join("\n")
-  backup false
+    file "/etc/ssl/private/#{certificate}.key" do
+      owner "root"
+      group "ssl-cert"
+      mode 0440
+      content keys[certificate].join("\n")
+      backup false
+    end
+  else
+    file "/etc/ssl/certs/#{certificate}.pem" do
+      action :delete
+    end
+
+    file "/etc/ssl/private/#{certificate}.key" do
+      action :delete
+    end
+  end
 end
index ce9c0e6..39e123e 100644 (file)
@@ -4,4 +4,5 @@ license           "Apache 2.0"
 description       "Installs and configures a tile cache"
 long_description  IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
 version           "1.0.0"
+depends           "ssl"
 depends           "squid"
index 4015f99..d1486ad 100644 (file)
@@ -17,6 +17,9 @@
 # limitations under the License.
 #
 
+node.default[:ssl][:certificate] = node[:ssl][:certificate] | [ "tile.openstreetmap" ]
+
+include_recipe "ssl"
 include_recipe "squid"
 
 tilecaches = search(:node, "roles:tilecache").sort_by { |n| n[:hostname] }
index 3f3f3f0..daaaddf 100644 (file)
@@ -2,9 +2,6 @@ name "tilecache"
 description "Role applied to all tile cache servers"
 
 default_attributes(
-  :ssl => {
-    :certificate => "tile.openstreetmap"
-  },
   :sysctl => {
     :network_conntrack_time_wait => {
       :comment => "Only track completed connections for 30 seconds",
@@ -23,6 +20,5 @@ default_attributes(
 
 run_list(
   "role[geodns]",
-  "recipe[ssl]",
   "recipe[tilecache]"
 )