Add class to use certmonger's local CA
authorJuan Antonio Osorio Robles <jaosorior@redhat.com>
Wed, 20 Jul 2016 13:54:30 +0000 (16:54 +0300)
committerJuan Antonio Osorio Robles <jaosorior@redhat.com>
Thu, 21 Jul 2016 07:43:52 +0000 (10:43 +0300)
This class extracts the certificate and adds it to the trusted certs.

bp tls-via-certmonger

Change-Id: I6dc1e0469cd7dbbb51659c8f29975d25b2941ec3

manifests/certmonger/ca/local.pp [new file with mode: 0644]

diff --git a/manifests/certmonger/ca/local.pp b/manifests/certmonger/ca/local.pp
new file mode 100644 (file)
index 0000000..ea08dec
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::certmonger::ca::local
+#
+# Does the necessary action to extract and trust certmonger's local CA.
+#
+# === Parameters:
+#
+# [*ca_pem*]
+#  (optional) PEM file that will contain the local CA certificate.
+#  Defaults to '/etc/pki/ca-trust/source/anchors/cm-local-ca.pem'
+#
+class tripleo::certmonger::ca::local(
+  $ca_pem = '/etc/pki/ca-trust/source/anchors/cm-local-ca.pem',
+){
+  $ca_pkcs12 = '/var/lib/certmonger/local/creds'
+  $extract_cmd = "openssl pkcs12 -in ${ca_pkcs12} -out ${ca_pem} -nokeys -nodes -passin pass:''"
+  $trust_ca_cmd = 'update-ca-trust extract'
+  exec { 'extract-and-trust-ca':
+    command => "${extract_cmd} && ${trust_ca_cmd}",
+    path    => '/usr/bin',
+    creates => $ca_pem,
+    require => Package['certmonger'],
+  }
+}