1 |
class openssl { |
2 |
class base { |
3 |
package { 'openssl': |
4 |
ensure => installed |
5 |
} |
6 |
} |
7 |
|
8 |
define self_signed_cert($directory = '/etc/certs') { |
9 |
include openssl::base |
10 |
|
11 |
$pem_file = "$name.pem" |
12 |
exec { "openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout $pem_file -out $pem_file -subj '/CN=$name'": |
13 |
cwd => "$directory", |
14 |
creates => "$directory/$name.pem", |
15 |
require => Package['openssl'] |
16 |
} |
17 |
} |
18 |
|
19 |
define self_signed_splitted_cert($filename = '', |
20 |
$directory = '/etc/certs', |
21 |
$owner = "root", |
22 |
$group = 'root', |
23 |
$mode = '600') { |
24 |
include openssl::base |
25 |
|
26 |
$crt_file = "$filename.crt" |
27 |
$key_file = "$filename.key" |
28 |
exec { "openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout $key_file -out $crt_file -subj '/CN=$name'": |
29 |
cwd => "$directory", |
30 |
creates => "$directory/$key_file", |
31 |
require => Package['openssl'], |
32 |
before => [ File["$directory/$key_file"], |
33 |
File["$directory/$crt_file"]] |
34 |
} |
35 |
|
36 |
file { ["$directory/$key_file","$directory/$crt_file"]: |
37 |
owner => $owner, |
38 |
group => $group, |
39 |
mode => $mode |
40 |
} |
41 |
} |
42 |
|
43 |
} |