fuel-library/deployment/puppet/openssl
Stanislaw Bogatkin 75b186af50 Change cert existance logic
Add checking commonName and subjectAltName in old certificate
if it exists. In other way we could not regenerate a new certificate
if any of these fields change.

Closes-Bug: #1490966
Upstream pull-request: https://github.com/camptocamp/puppet-openssl/pull/51

Change-Id: I1375a9d1ce5f50e84edee4ecc21614450408ae73
2015-09-02 14:33:19 +03:00
..
lib/puppet Change cert existance logic 2015-09-02 14:33:19 +03:00
manifests Add master node IP to certificate in Nginx 2015-08-25 12:45:58 +00:00
spec Add master node IP to certificate in Nginx 2015-08-25 12:45:58 +00:00
templates Import the camptocamp openssl module version 0.3.1. 2014-09-17 15:29:45 +00:00
tests Import the camptocamp openssl module version 0.3.1. 2014-09-17 15:29:45 +00:00
CHANGELOG Import the camptocamp openssl module version 0.3.1. 2014-09-17 15:29:45 +00:00
CHANGELOG.md Merge camptocamp/openssl upstream module 2015-01-12 09:47:04 +01:00
Gemfile Merge camptocamp/openssl upstream module 2015-01-12 09:47:04 +01:00
LICENSE Merge camptocamp/openssl upstream module 2015-01-12 09:47:04 +01:00
Modulefile Import the camptocamp openssl module version 0.3.1. 2014-09-17 15:29:45 +00:00
README.md Merge camptocamp/openssl upstream module 2015-01-12 09:47:04 +01:00
Rakefile Merge camptocamp/openssl upstream module 2015-01-12 09:47:04 +01:00
checksums.json Import the camptocamp openssl module version 0.3.1. 2014-09-17 15:29:45 +00:00

README.md

OpenSSL Puppet Module

Puppet Forge Build Status

This module manages OpenSSL.

Types and providers

This module provides three types and associated providers to manage SSL keys and certificates.

In every case, not providing the password (or setting it to undef, which is the default) means that the private key won't be encrypted with any symmetric cipher so it is completely unprotected.

ssl_pkey

This type allows to generate SSL private keys.

Simple usage:

ssl_pkey { '/path/to/private.key': }

Advanced options:

ssl_pkey { '/path/to/private.key':
  ensure   => 'present',
  password => 'j(D$',
}

x509_cert

This type allows to generate SSL certificates from a private key. You need to deploy a template file (templates/cert.cnf.erb is an example).

Simple usage:

x509_cert { '/path/to/certificate.crt': }

Advanced options:

x509_cert { '/path/to/certificate.crt':
  ensure      => 'present',
  password    => 'j(D$',
  template    => '/other/path/to/template.cnf',
  private_key => '/there/is/my/private.key',
  days        => 4536,
  force       => false,
}

x509_request

This type allows to generate SSL certificate signing requests from a private key. You need to deploy a template file (templates/cert.cnf.erb is an example).

Simple usage:

x509_request { '/path/to/request.csr': }

Advanced options:

x509_request { '/path/to/request.csr':
  ensure      => 'present',
  password    => 'j(D$',
  template    => '/other/path/to/template.cnf',
  private_key => '/there/is/my/private.key',
  force       => false,
}

Definitions

openssl::certificate::x509

This definition is a wrapper around the ssl_pkey, x509_cert and x509_request types. It generates a certificate template, then generates the private key, certificate and certificate signing request and sets the owner of the files.

Simple usage:

openssl::certificate::x509 { 'foo':
  country      => 'CH',
  organization => 'Example.com',
  commonname   => $fqdn,
}

Advanced options:

openssl::certificate::x509 { 'foo':
  ensure       => present,
  country      => 'CH',
  organization => 'Example.com',
  commonname   => $fqdn,
  state        => 'Here',
  locality     => 'Myplace',
  unit         => 'MyUnit',
  altnames     => ['a.com', 'b.com', 'c.com'],
  email        => 'contact@foo.com',
  days         => 3456,
  base_dir     => '/var/www/ssl',
  owner        => 'www-data',
  group        => 'www-data',
  password     => 'j(D$',
  force        => false,
  cnf_tpl      => 'my_module/cert.cnf.erb'
}

openssl::export::pkcs12

This definition generates a pkcs12 file:

openssl::export::pkcs12 { 'foo':
  ensure   => 'present',
  basedir  => '/path/to/dir',
  pkey     => '/here/is/my/private.key',
  cert     => '/there/is/the/cert.crt',
  in_pass  => 'my_pkey_password',
  out_pass => 'my_pkcs12_password',
}

Contributing

Please report bugs and feature request using GitHub issue tracker.

For pull requests, it is very much appreciated to check your Puppet manifest with puppet-lint to follow the recommended Puppet style guidelines from the Puppet Labs style guide.