X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fssl%2Fmanifests%2Finit.pp;h=5aedfbc9f382d9c80d9d9238adf71bd1f20983a9;hb=0ff90a1f82e7e433209b0453f3ce9a30a36fd3a6;hp=30cc261c0200de5681f72c509f2829438540596c;hpb=745714ee9bbb6fcbabbf46820358c1c4b7ee005d;p=mirror%2Fdsa-puppet.git diff --git a/modules/ssl/manifests/init.pp b/modules/ssl/manifests/init.pp index 30cc261c0..5aedfbc9f 100644 --- a/modules/ssl/manifests/init.pp +++ b/modules/ssl/manifests/init.pp @@ -1,6 +1,4 @@ class ssl { - - $cacert = 'mozilla/UTN_USERFirst_Hardware_Root_CA.crt' $caconf = '/etc/ca-certificates.conf' package { 'openssl': @@ -13,19 +11,75 @@ class ssl { ensure => installed, } + file { '/etc/ssl/README': + mode => '0444', + source => 'puppet:///modules/ssl/README', + } + file { '/etc/ca-certificates.conf': + source => 'puppet:///modules/ssl/ca-certificates.conf', + notify => Exec['refresh_normal_hashes'], + } + file { '/etc/ca-certificates-debian.conf': + mode => '0444', + source => 'puppet:///modules/ssl/ca-certificates-debian.conf', + notify => Exec['refresh_ca_debian_hashes'], + } + file { '/etc/ca-certificates-global.conf': + source => 'puppet:///modules/ssl/ca-certificates-global.conf', + notify => Exec['refresh_ca_global_hashes'], + } + + file { '/etc/apt/apt.conf.d/local-ssl-ca-global': + mode => '0444', + source => 'puppet:///modules/ssl/local-ssl-ca-global', + } + + file { '/etc/ssl/certs/ssl-cert-snakeoil.pem': + ensure => absent, + notify => Exec['refresh_normal_hashes'], + } + file { '/etc/ssl/private/ssl-cert-snakeoil.key': + ensure => absent, + } + file { '/etc/ssl/servicecerts': + ensure => link, + purge => true, + force => true, + target => '/usr/local/share/ca-certificates/debian.org', + notify => Exec['retire_debian_links'], + } + + file { '/usr/local/share/ca-certificates/debian.org': ensure => directory, source => 'puppet:///modules/ssl/servicecerts/', - mode => '0644', + mode => '0644', # this works; otherwise all files are +x purge => true, recurse => true, force => true, - notify => Exec['refresh_debian_links'], + notify => Exec['refresh_normal_hashes'], + } + file { '/etc/ssl/certs/README': + ensure => absent, + } + file { '/etc/ssl/ca-debian': + ensure => directory, + mode => '0755', + } + file { '/etc/ssl/ca-debian/README': + ensure => absent, + } + file { '/etc/ssl/ca-global': + ensure => directory, + mode => '0755', + } + file { '/etc/ssl/ca-global/README': + ensure => absent, } file { '/etc/ssl/debian': ensure => directory, source => 'puppet:///files/empty/', - mode => '0644', + mode => '0644', # this works; otherwise all files are +x purge => true, recurse => true, force => true, @@ -72,25 +126,19 @@ class ssl { require => Package['ssl-cert'], } - exec { 'refresh_debian_links': - command => 'cp -f -s ../servicecerts/* .', - cwd => '/etc/ssl/certs', - refreshonly => true, - notify => Exec['delete_unused_links'], + file { '/usr/local/sbin/update-ca-certificates-dsa': + mode => '0555', + source => 'puppet:///modules/ssl/update-ca-certificates-dsa', } - exec { 'delete_unused_links': - command => 'find -L . -mindepth 1 -maxdepth 1 -type l -delete', + + exec { 'retire_debian_links': + command => 'find -lname "../servicecerts/*" -exec rm {} +', cwd => '/etc/ssl/certs', refreshonly => true, - notify => Exec['refresh_normal_hashes'], # see NOTE 1 - } - exec { 'modify_configuration': - command => "sed -i -e 's#!${cacert}#${cacert}' ${caconf}", - onlyif => "grep -Fqx '!${cacert}' ${caconf}", notify => Exec['refresh_normal_hashes'], - require => Package['ca-certificates'], } exec { 'refresh_debian_hashes': + command => 'c_rehash /etc/ssl/debian/certs', refreshonly => true, require => Package['openssl'], } @@ -104,5 +152,25 @@ class ssl { refreshonly => true, require => Package['ca-certificates'], } + exec { 'refresh_ca_debian_hashes': + 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', + refreshonly => true, + require => [ + Package['ca-certificates'], + File['/etc/ssl/ca-debian'], + File['/etc/ca-certificates-debian.conf'], + File['/usr/local/sbin/update-ca-certificates-dsa'], + ] + } + exec { 'refresh_ca_global_hashes': + command => '/usr/local/sbin/update-ca-certificates-dsa --fresh --default --certsconf /etc/ca-certificates-global.conf --etccertsdir /etc/ssl/ca-global --hooksdir /dev/null', + refreshonly => true, + require => [ + Package['ca-certificates'], + File['/etc/ssl/ca-global'], + File['/etc/ca-certificates-global.conf'], + File['/usr/local/sbin/update-ca-certificates-dsa'], + ] + } }