66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# File 'manifests/config.pp', line 66
define openssl::config (
String $common_name,
Stdlib::Absolutepath $config = $name,
Array[Stdlib::Fqdn] $subject_alternate_names_dns = [],
Array[Stdlib::IP::Address] $subject_alternate_names_ip = [],
Array[Openssl::Keyusage] $key_usage = ['keyEncipherment', 'dataEncipherment'],
Array[Openssl::Extendedkeyusage] $extended_key_usage = ['serverAuth'],
Boolean $basic_constraints_ca = false,
String $owner = 'root',
Optional[String] $group = undef,
Optional[String] $country_name = undef,
Optional[String] $state_or_province_name = undef,
Optional[String] $locality_name = undef,
Optional[String] $postal_code = undef,
Optional[String] $street_address = undef,
Optional[String] $organization_name = undef,
Optional[String] $organization_unit_name = undef,
) {
# The base class must be included first
unless defined(Class['openssl']) {
fail('You must include the openssl base class before using any openssl defined resources')
}
$use_subject_alternate_names =
!empty($subject_alternate_names_dns) or !empty($subject_alternate_names_ip)
$basic_constraints = bool2str($basic_constraints_ca, 'CA:true', 'CA:false')
$params = {
'default_bits' => '2048',
'default_md' => 'sha512',
'common_name' => $common_name,
'country_name' => $country_name,
'state_or_province_name' => $state_or_province_name,
'locality_name' => $locality_name,
'postal_code' => $postal_code,
'street_address' => $street_address,
'organization_name' => $organization_name,
'organization_unit_name' => $organization_unit_name,
'key_usage' => $key_usage,
'extended_key_usage' => $extended_key_usage,
'basic_constraints' => $basic_constraints,
'subject_alternate_names_dns' => $subject_alternate_names_dns,
'subject_alternate_names_ip' => $subject_alternate_names_ip,
'use_subject_alternate_names' => $use_subject_alternate_names,
}
file { $config:
ensure => file,
owner => $owner,
group => pick($group, $openssl::root_group),
mode => '0600',
content => epp("${module_name}/csr.conf.epp", $params),
}
}
|