Changed ssl::certificate parameters

Use $name for output file name to allow multiple defines with the same CN.
This commit is contained in:
Ossi Salmi 2011-03-30 12:52:08 +03:00 committed by Timo Mkinen
parent fb904c4c3e
commit d27bf2375a

View file

@ -13,31 +13,39 @@ class ssl::openssl {
# #
# === Parameters: # === Parameters:
# #
# $key: # $name:
# Key output file.
# $crt:
# Certificate output file. # Certificate output file.
# $cn:
# Common name.
# $keyout:
# Key output file. Defaults to ${name}.
# $days: # $days:
# Validity in days, defaults to 3650. # Validity in days, defaults to 3650.
# $keysize: # $keysize:
# RSA key size, defaults to 2048. # RSA key size, defaults to 2048.
# $subject: # $subject:
# Subject, defaults to "/CN=${name}". # Extra subject information.
# #
define ssl::certificate($key, $crt, $days="3650", $keysize="2048", $subject="") { define ssl::certificate($cn, $keyout="", $days="3650", $keysize="2048", $subject="") {
include ssl::openssl include ssl::openssl
if $subject { if $keyout {
$subject_real = $subject $keyout_real = $keyout
} else { } else {
$subject_real = "/CN=${name}" $keyout_real = $name
}
if $subject {
$subject_real = "/CN=${cn}/${subject}"
} else {
$subject_real = "/CN=${cn}"
} }
exec { "openssl-req-${name}": exec { "openssl-req-${name}":
path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin", path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin",
command => "/bin/sh -c 'umask 077 ; openssl req -x509 -nodes -days ${days} -newkey rsa:${keysize} -subj \"${subject_real}\" -keyout ${key} -out ${crt}'", command => "/bin/sh -c 'umask 077 ; openssl req -x509 -nodes -days ${days} -newkey rsa:${keysize} -subj \"${subject_real}\" -keyout ${keyout_real} -out ${name}'",
creates => [ "${key}", "${crt}" ], creates => [ "${name}", "${keyout_real}" ],
} }
} }