]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ssl/manifests/init.pp
manage /etc/ca-certificates.conf because gandi
[dsa-puppet.git] / modules / ssl / manifests / init.pp
index d16754f6f336ad94c838e2a34cc699f39980b892..e8d68a4f16da090cc34e2763cbf765d32eecbfa0 100644 (file)
@@ -1,7 +1,25 @@
 class ssl {
 
-       package { 'openssl':
-               ensure => installed
+       package {
+               'openssl':
+                       ensure => installed,
+                       ;
+               'ssl-cert':
+                       ensure => installed,
+                       ;
+               'ca-certificates':
+                       ensure => installed,
+                       ;
+       }
+
+       file { '/etc/ssl/servicecerts':
+               ensure  => directory,
+               mode    => '0755',
+               purge   => true,
+               recurse => true,
+               force   => true,
+               source  => 'puppet:///modules/ssl/servicecerts/',
+               notify  => Exec['make_new_service_links']
        }
 
        file { '/etc/ssl/debian':
@@ -22,7 +40,9 @@ class ssl {
        }
        file { '/etc/ssl/debian/keys':
                ensure => directory,
+               group  => ssl-cert,
                mode   => '0750',
+               require => Package['ssl-cert'],
        }
        file { '/etc/ssl/debian/certs/thishost.crt':
                source => "puppet:///modules/ssl/clientcerts/${::fqdn}.client.crt",
@@ -30,7 +50,9 @@ class ssl {
        }
        file { '/etc/ssl/debian/keys/thishost.key':
                source => "puppet:///modules/ssl/clientcerts/${::fqdn}.key",
-               mode   => '0640'
+               mode   => '0440',
+               group   => ssl-cert,
+               require => Package['ssl-cert'],
        }
        file { '/etc/ssl/debian/certs/ca.crt':
                source => 'puppet:///modules/ssl/clientcerts/ca.crt',
@@ -44,13 +66,44 @@ class ssl {
                source  => "puppet:///modules/exim/certs/${::fqdn}.crt",
                notify => Exec['c_rehash /etc/ssl/debian/certs'],
        }
-       file { '/etc/ssl/debian/certs/thishost-server.key':
+       file { '/etc/ssl/debian/keys/thishost-server.key':
                source  => "puppet:///modules/exim/certs/${::fqdn}.key",
+               mode    => '0440',
                group   => ssl-cert,
-               mode    => '0640',
+               require => Package['ssl-cert'],
+       }
+
+       exec { 'make_new_service_links':
+               command     => 'cp -f --symbolic-link ../servicecerts/* .',
+               cwd         => '/etc/ssl/certs',
+               refreshonly => true,
+               notify      => Exec['cleanup_dead_links']
+       }
+
+       exec { 'cleanup_dead_links':
+               command     => 'find -L /etc/ssl/certs -mindepth 1 -maxdepth 1 -type l -delete',
+               refreshonly => true,
+               notify      => Exec['c_rehash /etc/ssl/certs']
+       }
+
+       exec { 'c_rehash /etc/ssl/certs':
+               refreshonly => true,
        }
 
        exec { 'c_rehash /etc/ssl/debian/certs':
                refreshonly => true,
        }
+
+       exec { 'modify_ca_certificates_conf':
+               command     => 'sed -i -e \'s#!mozilla/UTN_USERFirst_Hardware_Root_CA.crt#mozilla/UTN_USERFirst_Hardware_Root_CA.crt#\' /etc/ca-certificates.conf',
+               cwd         => '/etc/ssl/certs',
+               onlyif      => 'grep -Fqx \'!mozilla/UTN_USERFirst_Hardware_Root_CA.crt\' /etc/ca-certificates.conf',
+               notify      => Exec['update_ca_certificates']
+       }
+       exec { 'update_ca_certificates':
+               command     => '/usr/sbin/update-ca-certificates',
+               cwd         => '/etc/ssl/certs',
+               refreshonly => true
+       }
+
 }