2 $caconf = '/etc/ca-certificates.conf'
10 package { 'ca-certificates':
14 if has_role('insecure_ssl') {
15 $extra_ssl_certs_flags = ' --default'
16 $ssl_certs_config = 'puppet:///modules/ssl/ca-certificates-global.conf'
18 $extra_ssl_certs_flags = ''
19 $ssl_certs_config = 'puppet:///modules/ssl/ca-certificates.conf'
22 file { '/etc/ssl/README':
24 source => 'puppet:///modules/ssl/README',
26 file { '/etc/ca-certificates.conf':
27 source => $ssl_certs_config,
28 notify => Exec['refresh_normal_hashes'],
30 file { '/etc/ca-certificates-debian.conf':
32 source => 'puppet:///modules/ssl/ca-certificates-debian.conf',
33 notify => Exec['refresh_ca_debian_hashes'],
35 file { '/etc/ca-certificates-global.conf':
36 source => 'puppet:///modules/ssl/ca-certificates-global.conf',
37 notify => Exec['refresh_ca_global_hashes'],
40 file { '/etc/apt/apt.conf.d/local-ssl-ca-global':
42 source => 'puppet:///modules/ssl/local-ssl-ca-global',
45 file { '/etc/ssl/certs/ssl-cert-snakeoil.pem':
47 notify => Exec['refresh_normal_hashes'],
49 file { '/etc/ssl/private/ssl-cert-snakeoil.key':
53 file { '/etc/ssl/servicecerts':
57 target => '/usr/local/share/ca-certificates/debian.org',
58 notify => Exec['retire_debian_links'],
61 file { '/usr/local/share/ca-certificates/debian.org':
63 source => 'puppet:///modules/ssl/servicecerts/',
64 mode => '0644', # this works; otherwise all files are +x
68 notify => [ Exec['refresh_normal_hashes'], Exec['refresh_ca_global_hashes'] ],
70 file { '/etc/ssl/certs/README':
73 file { '/etc/ssl/ca-debian':
77 file { '/etc/ssl/ca-debian/README':
80 file { '/etc/ssl/ca-global':
84 file { '/etc/ssl/ca-global/README':
87 file { '/etc/ssl/debian':
89 source => 'puppet:///files/empty/',
90 mode => '0644', # this works; otherwise all files are +x
95 file { '/etc/ssl/debian/certs':
99 file { '/etc/ssl/debian/crls':
103 file { '/etc/ssl/debian/certs/thishost.crt':
104 content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.auto_clientcerts_dir"]) + "/" + @fqdn + ".client.crt") %>'),
105 notify => Exec['refresh_debian_hashes'],
107 file { '/etc/ssl/debian/certs/ca.crt':
108 content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.auto_clientcerts_dir"]) + "/ca.crt") %>'),
109 notify => Exec['refresh_debian_hashes'],
111 file { '/etc/ssl/debian/crls/ca.crl':
112 content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.auto_clientcerts_dir"]) + "/ca.crl") %>'),
114 file { '/etc/ssl/debian/certs/thishost-server.crt':
115 content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.auto_certs_dir"]) + "/" + @fqdn + ".crt") %>'),
116 notify => Exec['refresh_debian_hashes'],
119 file { '/etc/ssl/debian/keys/thishost.key':
122 file { '/etc/ssl/debian/keys/thishost-server.key':
125 file { '/etc/ssl/debian/keys':
129 file { '/etc/ssl/private/thishost.key':
130 content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.auto_clientcerts_dir"]) + "/" + @fqdn + ".key") %>'),
133 require => Package['ssl-cert'],
135 file { '/etc/ssl/private/thishost-server.key':
136 content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.auto_certs_dir"]) + "/" + @fqdn + ".key") %>'),
139 require => Package['ssl-cert'],
142 $updatecacertsdsa = '/usr/local/sbin/update-ca-certificates-dsa'
143 if (versioncmp($::lsbmajdistrelease, '9') >= 0) {
144 file { $updatecacertsdsa:
147 $updatecacerts = '/usr/sbin/update-ca-certificates'
149 file { $updatecacertsdsa:
151 source => 'puppet:///modules/ssl/update-ca-certificates-dsa',
153 $updatecacerts = $updatecacertsdsa
156 exec { 'retire_debian_links':
157 command => 'find -lname "../servicecerts/*" -exec rm {} +',
158 cwd => '/etc/ssl/certs',
160 notify => Exec['refresh_normal_hashes'],
162 exec { 'refresh_debian_hashes':
163 command => 'c_rehash /etc/ssl/debian/certs',
165 require => Package['openssl'],
168 exec { 'refresh_normal_hashes':
169 # NOTE 1: always use update-ca-certificates to manage hashes in
170 # /etc/ssl/certs otherwise /etc/ssl/ca-certificates.crt will
171 # get a hash overriding the hash that would have been generated
172 # for another certificate ... which is problem, comrade
173 # NOTE 2: always ask update-ca-certificates to freshen (-f) the links
174 command => "/usr/sbin/update-ca-certificates --fresh${extra_ssl_certs_flags}",
176 require => Package['ca-certificates'],
178 exec { 'refresh_ca_debian_hashes':
179 command => "${updatecacerts} --fresh --certsconf /etc/ca-certificates-debian.conf --localcertsdir /dev/null --etccertsdir /etc/ssl/ca-debian --hooksdir /dev/null",
182 Package['ca-certificates'],
183 File['/etc/ssl/ca-debian'],
184 File['/etc/ca-certificates-debian.conf'],
185 File[$updatecacertsdsa],
188 exec { 'refresh_ca_global_hashes':
189 command => "${updatecacerts} --fresh --default --certsconf /etc/ca-certificates-global.conf --etccertsdir /etc/ssl/ca-global --hooksdir /dev/null",
192 Package['ca-certificates'],
193 File['/etc/ssl/ca-global'],
194 File['/etc/ca-certificates-global.conf'],
195 File[$updatecacertsdsa],