Revert "Update configuration for SSL ca-debian cert store"
[mirror/dsa-puppet.git] / modules / ssl / manifests / init.pp
1 class ssl {
2         $caconf = '/etc/ca-certificates.conf'
3
4         package { 'openssl':
5                 ensure   => installed,
6         }
7         package { 'ssl-cert':
8                 ensure   => installed,
9         }
10         package { 'ca-certificates':
11                 ensure   => installed,
12         }
13
14         file { '/etc/ssl/README':
15                 mode   => '0444',
16                 source => 'puppet:///modules/ssl/README',
17         }
18         file { '/etc/ca-certificates.conf':
19                 source => 'puppet:///modules/ssl/ca-certificates.conf',
20                 notify  => Exec['refresh_normal_hashes'],
21         }
22         file { '/etc/ca-certificates-debian.conf':
23                 mode    => '0444',
24                 source => 'puppet:///modules/ssl/ca-certificates-debian.conf',
25                 notify  => Exec['refresh_ca_debian_hashes'],
26         }
27         file { '/etc/ca-certificates-global.conf':
28                 source => 'puppet:///modules/ssl/ca-certificates-global.conf',
29                 notify  => Exec['refresh_ca_global_hashes'],
30         }
31
32         file { '/etc/apt/apt.conf.d/local-ssl-ca-global':
33                 mode   => '0444',
34                 source => 'puppet:///modules/ssl/local-ssl-ca-global',
35         }
36
37         file { '/etc/ssl/certs/ssl-cert-snakeoil.pem':
38                 ensure => absent,
39                 notify => Exec['refresh_normal_hashes'],
40         }
41         file { '/etc/ssl/private/ssl-cert-snakeoil.key':
42                 ensure => absent,
43         }
44
45         file { '/etc/ssl/servicecerts':
46                 ensure   => link,
47                 purge    => true,
48                 force    => true,
49                 target   => '/usr/local/share/ca-certificates/debian.org',
50                 notify   => Exec['retire_debian_links'],
51         }
52
53         file { '/usr/local/share/ca-certificates/debian.org':
54                 ensure   => directory,
55                 source   => 'puppet:///modules/ssl/servicecerts/',
56                 mode     => '0644', # this works; otherwise all files are +x
57                 purge    => true,
58                 recurse  => true,
59                 force    => true,
60                 notify   => [ Exec['refresh_normal_hashes'], Exec['refresh_ca_global_hashes'] ],
61         }
62         file { '/etc/ssl/certs/README':
63                 ensure => absent,
64         }
65         file { '/etc/ssl/ca-debian':
66                 ensure => directory,
67                 mode   => '0755',
68         }
69         file { '/etc/ssl/ca-debian/README':
70                 ensure => absent,
71         }
72         file { '/etc/ssl/ca-global':
73                 ensure => directory,
74                 mode   => '0755',
75         }
76         file { '/etc/ssl/ca-global/README':
77                 ensure => absent,
78         }
79         file { '/etc/ssl/debian':
80                 ensure   => directory,
81                 source   => 'puppet:///files/empty/',
82                 mode     => '0644', # this works; otherwise all files are +x
83                 purge    => true,
84                 recurse  => true,
85                 force    => true,
86         }
87         file { '/etc/ssl/debian/certs':
88                 ensure  => directory,
89                 mode    => '0755',
90         }
91         file { '/etc/ssl/debian/crls':
92                 ensure  => directory,
93                 mode    => '0755',
94         }
95         file { '/etc/ssl/debian/certs/thishost.crt':
96                 source  => "puppet:///modules/ssl/clientcerts/${::fqdn}.client.crt",
97                 notify  => Exec['refresh_debian_hashes'],
98         }
99         file { '/etc/ssl/debian/certs/ca.crt':
100                 source  => 'puppet:///modules/ssl/clientcerts/ca.crt',
101                 notify  => Exec['refresh_debian_hashes'],
102         }
103         file { '/etc/ssl/debian/crls/ca.crl':
104                 source  => 'puppet:///modules/ssl/clientcerts/ca.crl',
105         }
106         file { '/etc/ssl/debian/certs/thishost-server.crt':
107                 source  => "puppet:///modules/exim/certs/${::fqdn}.crt",
108                 notify  => Exec['refresh_debian_hashes'],
109         }
110
111         file { '/etc/ssl/debian/keys/thishost.key':
112                 ensure => absent,
113         }
114         file { '/etc/ssl/debian/keys/thishost-server.key':
115                 ensure => absent,
116         }
117         file { '/etc/ssl/debian/keys':
118                 ensure => absent,
119                 force    => true,
120         }
121         file { '/etc/ssl/private/thishost.key':
122                 source  => "puppet:///modules/ssl/clientcerts/${::fqdn}.key",
123                 mode    => '0440',
124                 group   => ssl-cert,
125                 require => Package['ssl-cert'],
126         }
127         file { '/etc/ssl/private/thishost-server.key':
128                 source  => "puppet:///modules/exim/certs/${::fqdn}.key",
129                 mode    => '0440',
130                 group   => ssl-cert,
131                 require => Package['ssl-cert'],
132         }
133
134         file { '/usr/local/sbin/update-ca-certificates-dsa':
135                 mode   => '0555',
136                 source => 'puppet:///modules/ssl/update-ca-certificates-dsa',
137         }
138
139         exec { 'retire_debian_links':
140                 command     => 'find -lname "../servicecerts/*" -exec rm {} +',
141                 cwd         => '/etc/ssl/certs',
142                 refreshonly => true,
143                 notify      => Exec['refresh_normal_hashes'],
144         }
145         exec { 'refresh_debian_hashes':
146                 command     => 'c_rehash /etc/ssl/debian/certs',
147                 refreshonly => true,
148                 require     => Package['openssl'],
149         }
150         exec { 'refresh_normal_hashes':
151                 # NOTE 1: always use update-ca-certificates to manage hashes in
152                 #         /etc/ssl/certs otherwise /etc/ssl/ca-certificates.crt will
153                 #         get a hash overriding the hash that would have been generated
154                 #         for another certificate ... which is problem, comrade
155                 # NOTE 2: always ask update-ca-certificates to freshen (-f) the links
156                 command     => '/usr/sbin/update-ca-certificates -f',
157                 refreshonly => true,
158                 require     => Package['ca-certificates'],
159         }
160         exec { 'refresh_ca_debian_hashes':
161                 command     => '/usr/local/sbin/update-ca-certificates-dsa --fresh --certsconf /etc/ca-certificates-debian.conf --localcertsdir /dev/null --etccertsdir /etc/ssl/ca-debian --hooksdir /dev/null',
162                 refreshonly => true,
163                 require     => [
164                         Package['ca-certificates'],
165                         File['/etc/ssl/ca-debian'],
166                         File['/etc/ca-certificates-debian.conf'],
167                         File['/usr/local/sbin/update-ca-certificates-dsa'],
168                 ]
169         }
170         exec { 'refresh_ca_global_hashes':
171                 command     => '/usr/local/sbin/update-ca-certificates-dsa --fresh --default --certsconf /etc/ca-certificates-global.conf --etccertsdir /etc/ssl/ca-global --hooksdir /dev/null',
172                 refreshonly => true,
173                 require     => [
174                         Package['ca-certificates'],
175                         File['/etc/ssl/ca-global'],
176                         File['/etc/ca-certificates-global.conf'],
177                         File['/usr/local/sbin/update-ca-certificates-dsa'],
178                 ]
179         }
180
181 }