summaryrefslogtreecommitdiffstats
path: root/lib/puppet/ssl/certificate_request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/ssl/certificate_request.rb')
-rw-r--r--lib/puppet/ssl/certificate_request.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/puppet/ssl/certificate_request.rb b/lib/puppet/ssl/certificate_request.rb
new file mode 100644
index 000000000..ce3aff477
--- /dev/null
+++ b/lib/puppet/ssl/certificate_request.rb
@@ -0,0 +1,27 @@
+require 'puppet/ssl'
+
+# This constant just exists for us to use for adding our request terminii.
+class Puppet::SSL::CertificateRequest # :nodoc:
+ extend Puppet::Indirector
+
+ indirects :certificate_request #, :terminus_class => :file
+
+ attr_reader :name, :content
+
+ # How to create a certificate request with our system defaults.
+ def generate(key)
+ Puppet.info "Creating a new SSL certificate request for %s" % name
+
+ csr = OpenSSL::X509::Request.new
+ csr.version = 0
+ csr.subject = OpenSSL::X509::Name.new([["CN", name]])
+ csr.public_key = key.public_key
+ csr.sign(key, OpenSSL::Digest::MD5.new)
+
+ @content = csr
+ end
+
+ def initialize(name)
+ @name = name
+ end
+end