SlideShare a Scribd company logo
1 of 59
Download to read offline
Puppet CA: Certificates explained 
Thomas Gelf - PuppetCamp Düsseldorf 2014
Thomas Gelf, nice to meet you! 
joined NETWAYS in 2010 
formerly more than ten years of... 
web (application) development 
routing/switching: bank/ISP backbones 
ISP: Mail, Hosting, SIP-Carrier, IPv6...
Origins 
nationality: Italian 
mother tongue: German 
kind of. 
SOUTH TYROLEAN!!!
Me and Puppet 
first Puppet steps with 0.24 
talks, articles, blog posts 
trainer, consultant 
over-certified
Me @ PuppetConf 2014 
Had a great time, the conference was awesome! 
PuppetConf 2015 will be in Portland - see you there :)
NETWAYS
Netways and Puppet 
German Puppet Labs Training Partner 
Trainings 
Consulting 
Workshops
Puppet Trainings 
http://www.netways.de/training
What this talk is all about 
certificates 
puppet certificates 
REST API 
distributed environments 
security issues and their consequences 
certificate lifecyle
WHY SHOULD I CARE?
Running Puppet Enterprise?
CERTIFICATES
Public Key Infrastructure - PKI 
everybody has it's own private key 
signs or encrypts a message 
verification/decryption uses public key 
algorithms: RSA, DSA...
PKI - Wikipedia
X.509 
describes how our Puppet PKI works 
https:// - you use it every day 
ITU-T standard 
defines a strict hierarchy 
a tree instead of a "web of trust" 
X509v3: allows extensions
Certificate structure 
(distinguished) name 
serial number 
algorythm 
issuer 
validity: FROM - TO 
...
The distinguished name: DN 
just a string 
often a DNS name 
could also be "CA: puppet master" 
something you should care about!
The revocation list 
allows to invalidate certificates 
does so based on serial numbers 
important if you "loose" certificates
Filename extensions 
.csr: certificate signing request, Base64 
-----BEGIN CERTIFICATE REQUEST----- 
... 
-----END CERTIFICATE REQUEST----- 
.pem: a certificate, Base64 
-----BEGIN CERTIFICATE----- 
Puppet uses .pem also for private keys: 
-----BEGIN RSA PRIVATE KEY-----
PUPPET CERTIFICATES
Puppet certificates: archeology 
Want to see a fresh new Puppet CA? Try it out! 
mkdir /tmp/ssltest 
puppet master --no-daemonize --verbose  
--ssldir /tmp/ssltest  
--certname test.example.com
Puppet certificates: archeology 
A fresh new Puppet CA!
Puppet certificates: archeology 
ls -l /tmp/ssltest
Same thing for the agent 
puppet agent --test  
--ssldir /tmp/sslagent  
--certname test.example.com
We all know the basics 
puppet cert list 
puppet cert list --all 
puppet cert sign test.example.com 
puppet cert revoke test.example.com 
puppet cert clean test.example.com 
find ./ -name 'test.example.com*' --delete
SSL directories 
puppet master --configprint ssldir 
puppet agent --configprint ssldir 
manual configuration makes sense 
think about user permissions 
~/.puppet, /var/lib/puppet 
master and agent on the same host 
passenger VS debug (--no-daemonize)
Let's dump a certificate 
openssl x509 -in testexample.com.pem -noout -text 
puppet cert print test.example.com
Custom data in your certificates 
https://docs.puppetlabs.com/puppet/latest/reference 
/ssl_attributes_extensions.html 
/etc/puppet/csr_attributes.yaml 
custom attributes in your CSR
MCollective
Study security guidelines! 
Study security guidelines! 
Study security guidelines! 
STUDY SECURITY GUIDELINES! 
puppetlabs.com/mcollective/security-overview
Get inspired by existing modules 
make sure you understood them 
or write your own ones 
re-use Puppet certificates 
read about trust 
and STUDY THE SECURITY GUIDELINES!
THE REST API
It's a web application! 
<VirtualHost *:8140> 
SSLEngine on 
SSLProtocol ALL -SSLv2 -SSLv3 
SSLCipherSuite EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+... 
SSLHonorCipherOrder on 
SSLCertificateFile $ssldir/certs/$fqdn.pem 
SSLCertificateKeyFile $ssldir/private_keys/$fqdn.pem 
SSLCertificateChainFile $ssldir/ca/ca_crt.pem 
SSLCACertificateFile $ssldir/ca/ca_crt.pem 
SSLCARevocationFile $ssldir/ca/ca_crl.pem 
SSLVerifyClient optional 
SSLVerifyDepth 1 
SSLOptions +StdEnvVars +ExportCertData
The Rest API 
# http://docs.puppetlabs.com/guides/rest_api.html 
https://master:8140/{environment}/{resource}/{key} 
available on puppet master 
and on VERY ancient agents (listen=true)
Puppet REST API URI examples 
GET /{environment}/catalog/{node certificate name} 
GET /{environment}/file_bucket_file/md5/{checksum} 
GET /{environment}/facts/{node certname}
Permissions 
http://docs.puppetlabs.com/guides/rest_auth_conf.html 
# auth.conf 
# allow all nodes to store their own reports 
path ~ ^/report/([^/]+)$ 
method save 
allow $1
SSL-enabled curl example 
Use your certificates and discover the API: 
curl  
--cert /var/lib/puppet/ssl/certs/host.pem  
--key /var/lib/puppet/ssl/private_keys/host.pem  
--cacert /var/lib/puppet/ssl/ca/ca_crt.pem  
-k -H "Accept: yaml"  
https://master:8140/production/facts/somehostname
DISTRIBUTED SETUP
Puppet Advanced* Training
Configuration for such a setup 
One CA is more than enough: 
[master] 
ca = false 
[agent] 
ca_server = ca.example.com 
Optionally, still experimental: DNS SRV records
Chain of trust 
Since 3.2.1 you can use intermediate CAs to delegate trust 
# http://docs.puppetlabs.com/puppet/3/reference 
# /config_ssl_external_ca.html 
[agent] 
ssl_client_ca_auth = $certdir/issuer.pem 
Tell Apache about your chain: 
SSLCertificateChainFile "/path/to/ca_bundle.pem"
It could look like this 
+------------------------+ 
| Root self-signed CA | 
+------+----------+------+ 
| | 
+----------+ +------------+ 
| | 
v v 
+-----------------+ +----------------+ 
| Master CA | | Agent CA | 
+--------+--------+ +--------+-------+ 
| | 
v v 
+-----------------+ +----------------+ 
| Master SSL Cert | | Agent SSL Cert | 
+-----------------+ +----------------+
SSL Professional? 
integrate it in your existing hierarchy 
use your own toolchain 
ship signed certificates (carefully)
SECURITY
Puppet and security issues 
Read Security Disclosures! 
https://puppetlabs.com/security/
Thank Heartbleed! 
docs.puppetlabs.com/trouble_remediate _heartbleed_overview.html 
docs.puppetlabs.com/latest/reference /ssl_regenerate_certificates.html
A specific security problem 
Very interesting and worth to read: CVE-2011-3872 
"In versions prior to 2.6.12 and 2.7.6, the Puppet CA will 
improperly insert any certdnsnames values into agent 
certificates as well as master certificates. This bug was 
introduced in Puppet 0.24.0." 
puppet master --configprint certdnsnames 
puppet, puppet.example.com
Study it! 
http://links.puppetlabs.com/cve20113872_remediation 
Have a look at the remediation toolkit 
And to be on the safe side, check your agent certs: 
openssl x509 -in test.example.com.pem -noout -text |  
grep 'Subject Alt' -A 1 
X509v3 Subject Alternative Name: 
DNS:test.example.com, DNS:puppet, DNS:puppet.example.com
WARNING 
"upgrading" doesn't fix a mess like this 
old certificates would remain valid 
you have to switch to a new CA... 
...and this leads us to the next topic
CA LIFECYCLE MANAGEMENT
Bad news 
Puppet should allow for automatic resigning of SSL certs 
http://projects.puppetlabs.com/issues/7272 
There is no such thing in Puppet 
"...will be available with Puppet Sites"
YOU ARE ON YOUR OWN
One way of replacing a CA 
stop all agents 
throw away their certificates 
create a new CA with a new name 
start your agents 
sign their new CSRs
CA... 
master: rm -rf $(puppet master --configprint ssldir) 
agents: rm -rf $(puppet agent --configprint ssldir) 
# default ca_name: "Puppet CA: <master certname>" 
CERTNAME=$(puppet master --configprint certname) 
TS=$(date +%Y-%m-%d) 
puppet cert --generate  
--ca_name "Puppet CA: $CERTNAME <$TS>" $CERTNAME  
--dns_alt_names puppet,puppet.example.com 
puppet cert --allow-dns-alt-names sign $CERTNAME
You could also 
get inspired by the remediation kits 
write your own SSH loop 
fix it with MCollective (carefully!) 
open new feature requests
Don't like trouble? 
Before generating your CA: 
[master] 
ca_ttl = 20y 
Leave your company in time 
NB: expiration > 2038-01-19 == bad idea
BTW: WE ARE HIRING ;-)
Thank you for your attention!
Questions? 
class puppetcamp { 
package { 'questions': 
ensure => answered 
} 
}

More Related Content

What's hot

PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetWalter Heck
 
PVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIPVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIAndrey Karpov
 
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSH
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSHTame Your Build And Deployment Process With Hudson, PHPUnit, and SSH
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSHDavid Stockton
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Daniele Pallastrelli
 
Teaching Your WAF New Tricks
Teaching Your WAF New TricksTeaching Your WAF New Tricks
Teaching Your WAF New TricksRobert Rowley
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1Vishal Biyani
 
Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014Puppet
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011Carlos Sanchez
 
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011Carlos Sanchez
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersBen Hall
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
Aucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricksAucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricksGlen Ogilvie
 
The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.Workhorse Computing
 
Learn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMLearn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMKumaran Balachandran
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsBen Hall
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc  2015 HTTP 1, HTTP 2 and folksDevoxx Maroc  2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folksNicolas Martignole
 

What's hot (20)

PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
PVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIPVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CI
 
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSH
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSHTame Your Build And Deployment Process With Hudson, PHPUnit, and SSH
Tame Your Build And Deployment Process With Hudson, PHPUnit, and SSH
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++
 
Debian packaging
Debian packagingDebian packaging
Debian packaging
 
Teaching Your WAF New Tricks
Teaching Your WAF New TricksTeaching Your WAF New Tricks
Teaching Your WAF New Tricks
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1
 
Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containers
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Aucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricksAucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricks
 
The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.
 
Learn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMLearn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VM
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
 
Ungooglable
UngooglableUngooglable
Ungooglable
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc  2015 HTTP 1, HTTP 2 and folksDevoxx Maroc  2015 HTTP 1, HTTP 2 and folks
Devoxx Maroc 2015 HTTP 1, HTTP 2 and folks
 

Viewers also liked

Puppet Camp Duesseldorf 2014: Luke Kanies - Puppet Keynote
Puppet Camp Duesseldorf 2014: Luke Kanies - Puppet KeynotePuppet Camp Duesseldorf 2014: Luke Kanies - Puppet Keynote
Puppet Camp Duesseldorf 2014: Luke Kanies - Puppet KeynoteNETWAYS
 
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...NETWAYS
 
Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...
Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...
Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...NETWAYS
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonNETWAYS
 
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
OSMC 2014: Server Hardware Monitoring done right | Werner FischerOSMC 2014: Server Hardware Monitoring done right | Werner Fischer
OSMC 2014: Server Hardware Monitoring done right | Werner FischerNETWAYS
 
Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...
Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...
Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...NETWAYS
 
Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....
Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....
Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....NETWAYS
 
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...NETWAYS
 
Puppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) Puppet
Puppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) PuppetPuppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) Puppet
Puppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) PuppetNETWAYS
 
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?NETWAYS
 
Bareos - Open Source Data Protection, by Philipp Storz
Bareos - Open Source Data Protection, by Philipp StorzBareos - Open Source Data Protection, by Philipp Storz
Bareos - Open Source Data Protection, by Philipp StorzNETWAYS
 
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...NETWAYS
 
Open Source Backup Conference 2014: Automating backup provisioning with bacul...
Open Source Backup Conference 2014: Automating backup provisioning with bacul...Open Source Backup Conference 2014: Automating backup provisioning with bacul...
Open Source Backup Conference 2014: Automating backup provisioning with bacul...NETWAYS
 
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for PuppetPuppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for PuppetNETWAYS
 
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio LlorenteOpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio LlorenteNETWAYS
 
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...NETWAYS
 
OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...
OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...
OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...NETWAYS
 
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...NETWAYS
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaNETWAYS
 
Icinga Workshop 2014 Icinga 2 Hacking Session
Icinga Workshop 2014 Icinga 2 Hacking SessionIcinga Workshop 2014 Icinga 2 Hacking Session
Icinga Workshop 2014 Icinga 2 Hacking SessionNETWAYS
 

Viewers also liked (20)

Puppet Camp Duesseldorf 2014: Luke Kanies - Puppet Keynote
Puppet Camp Duesseldorf 2014: Luke Kanies - Puppet KeynotePuppet Camp Duesseldorf 2014: Luke Kanies - Puppet Keynote
Puppet Camp Duesseldorf 2014: Luke Kanies - Puppet Keynote
 
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
Puppet Camp Duesseldorf 2014: Toni Schmidbauer - Continuously deliver your pu...
 
Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...
Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...
Open Source Backup Conference 2014: Bareos in scientific environments, by Jan...
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
 
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
OSMC 2014: Server Hardware Monitoring done right | Werner FischerOSMC 2014: Server Hardware Monitoring done right | Werner Fischer
OSMC 2014: Server Hardware Monitoring done right | Werner Fischer
 
Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...
Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...
Open Source Backup Conference 2014: Bakup to and of the cloud, by Marco van W...
 
Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....
Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....
Open Source Backup Cpnference 2014: Bareos in scientific environments, by Dr....
 
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
Open Source Backup Conference 2014: Migration from bacula to bareos, by Danie...
 
Puppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) Puppet
Puppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) PuppetPuppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) Puppet
Puppet Camp Duesseldorf 2014: Kris Buytaert - Monitoring (with) Puppet
 
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?
Puppet Camp Duesseldorf 2014: Martin Alfke - Can you upgrade to puppet 4.x?
 
Bareos - Open Source Data Protection, by Philipp Storz
Bareos - Open Source Data Protection, by Philipp StorzBareos - Open Source Data Protection, by Philipp Storz
Bareos - Open Source Data Protection, by Philipp Storz
 
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
Open Source Backup Conference 2014: Workshop bareos introduction, by Philipp ...
 
Open Source Backup Conference 2014: Automating backup provisioning with bacul...
Open Source Backup Conference 2014: Automating backup provisioning with bacul...Open Source Backup Conference 2014: Automating backup provisioning with bacul...
Open Source Backup Conference 2014: Automating backup provisioning with bacul...
 
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for PuppetPuppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
Puppet Camp Berlin 2015: Felix Frank | Rapid Testing Setups for Puppet
 
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio LlorenteOpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
 
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
OpenNebula Conf 2014 | Bootstrapping a virtual infrastructure using OpenNebul...
 
OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...
OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...
OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan ...
 
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
 
Icinga Workshop 2014 Icinga 2 Hacking Session
Icinga Workshop 2014 Icinga 2 Hacking SessionIcinga Workshop 2014 Icinga 2 Hacking Session
Icinga Workshop 2014 Icinga 2 Hacking Session
 

Similar to Puppet Camp Duesseldorf 2014: Thomas Gelf - Puppet CA: certificates explained

PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetOlinData
 
Puppet Troubleshooting
Puppet TroubleshootingPuppet Troubleshooting
Puppet TroubleshootingPuppet
 
Rapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppetRapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppetCarl Caum
 
PuppetConf 2015: Puppet API Roundup
PuppetConf 2015: Puppet API RoundupPuppetConf 2015: Puppet API Roundup
PuppetConf 2015: Puppet API RoundupJeremy Adams
 
Troubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise StackTroubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise StackPuppet
 
Aeon mike guide transparent ssl filtering (1)
Aeon mike guide transparent ssl filtering (1)Aeon mike guide transparent ssl filtering (1)
Aeon mike guide transparent ssl filtering (1)Conrad Cruz
 
Aeon mike guide transparent ssl filtering
Aeon mike guide transparent ssl filteringAeon mike guide transparent ssl filtering
Aeon mike guide transparent ssl filteringConrad Cruz
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with PuppetAlessandro Franceschi
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Puppet
 
Building and Testing Puppet with Docker
Building and Testing Puppet with DockerBuilding and Testing Puppet with Docker
Building and Testing Puppet with Dockercarlaasouza
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slidesDocker, Inc.
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013grim_radical
 
Introduction to InSpec and 1.0 release update
Introduction to InSpec and 1.0 release updateIntroduction to InSpec and 1.0 release update
Introduction to InSpec and 1.0 release updateAlex Pop
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStackBram Vogelaar
 
Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Puppet
 
V mware
V mwareV mware
V mwaredvmug1
 

Similar to Puppet Camp Duesseldorf 2014: Thomas Gelf - Puppet CA: certificates explained (20)

PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
Puppet Troubleshooting
Puppet TroubleshootingPuppet Troubleshooting
Puppet Troubleshooting
 
Troubleshooting Puppet
Troubleshooting PuppetTroubleshooting Puppet
Troubleshooting Puppet
 
One-Man Ops
One-Man OpsOne-Man Ops
One-Man Ops
 
Rapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppetRapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppet
 
PuppetConf 2015: Puppet API Roundup
PuppetConf 2015: Puppet API RoundupPuppetConf 2015: Puppet API Roundup
PuppetConf 2015: Puppet API Roundup
 
Troubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise StackTroubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise Stack
 
Aeon mike guide transparent ssl filtering (1)
Aeon mike guide transparent ssl filtering (1)Aeon mike guide transparent ssl filtering (1)
Aeon mike guide transparent ssl filtering (1)
 
Aeon mike guide transparent ssl filtering
Aeon mike guide transparent ssl filteringAeon mike guide transparent ssl filtering
Aeon mike guide transparent ssl filtering
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
Puppet
PuppetPuppet
Puppet
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
 
Building and Testing Puppet with Docker
Building and Testing Puppet with DockerBuilding and Testing Puppet with Docker
Building and Testing Puppet with Docker
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013
 
Introduction to InSpec and 1.0 release update
Introduction to InSpec and 1.0 release updateIntroduction to InSpec and 1.0 release update
Introduction to InSpec and 1.0 release update
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStack
 
Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014
 
V mware
V mwareV mware
V mware
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

Puppet Camp Duesseldorf 2014: Thomas Gelf - Puppet CA: certificates explained

  • 1. Puppet CA: Certificates explained Thomas Gelf - PuppetCamp Düsseldorf 2014
  • 2. Thomas Gelf, nice to meet you! joined NETWAYS in 2010 formerly more than ten years of... web (application) development routing/switching: bank/ISP backbones ISP: Mail, Hosting, SIP-Carrier, IPv6...
  • 3. Origins nationality: Italian mother tongue: German kind of. SOUTH TYROLEAN!!!
  • 4. Me and Puppet first Puppet steps with 0.24 talks, articles, blog posts trainer, consultant over-certified
  • 5. Me @ PuppetConf 2014 Had a great time, the conference was awesome! PuppetConf 2015 will be in Portland - see you there :)
  • 7. Netways and Puppet German Puppet Labs Training Partner Trainings Consulting Workshops
  • 9. What this talk is all about certificates puppet certificates REST API distributed environments security issues and their consequences certificate lifecyle
  • 10. WHY SHOULD I CARE?
  • 13. Public Key Infrastructure - PKI everybody has it's own private key signs or encrypts a message verification/decryption uses public key algorithms: RSA, DSA...
  • 15. X.509 describes how our Puppet PKI works https:// - you use it every day ITU-T standard defines a strict hierarchy a tree instead of a "web of trust" X509v3: allows extensions
  • 16. Certificate structure (distinguished) name serial number algorythm issuer validity: FROM - TO ...
  • 17. The distinguished name: DN just a string often a DNS name could also be "CA: puppet master" something you should care about!
  • 18. The revocation list allows to invalidate certificates does so based on serial numbers important if you "loose" certificates
  • 19. Filename extensions .csr: certificate signing request, Base64 -----BEGIN CERTIFICATE REQUEST----- ... -----END CERTIFICATE REQUEST----- .pem: a certificate, Base64 -----BEGIN CERTIFICATE----- Puppet uses .pem also for private keys: -----BEGIN RSA PRIVATE KEY-----
  • 21. Puppet certificates: archeology Want to see a fresh new Puppet CA? Try it out! mkdir /tmp/ssltest puppet master --no-daemonize --verbose --ssldir /tmp/ssltest --certname test.example.com
  • 22. Puppet certificates: archeology A fresh new Puppet CA!
  • 23. Puppet certificates: archeology ls -l /tmp/ssltest
  • 24. Same thing for the agent puppet agent --test --ssldir /tmp/sslagent --certname test.example.com
  • 25. We all know the basics puppet cert list puppet cert list --all puppet cert sign test.example.com puppet cert revoke test.example.com puppet cert clean test.example.com find ./ -name 'test.example.com*' --delete
  • 26. SSL directories puppet master --configprint ssldir puppet agent --configprint ssldir manual configuration makes sense think about user permissions ~/.puppet, /var/lib/puppet master and agent on the same host passenger VS debug (--no-daemonize)
  • 27. Let's dump a certificate openssl x509 -in testexample.com.pem -noout -text puppet cert print test.example.com
  • 28. Custom data in your certificates https://docs.puppetlabs.com/puppet/latest/reference /ssl_attributes_extensions.html /etc/puppet/csr_attributes.yaml custom attributes in your CSR
  • 30. Study security guidelines! Study security guidelines! Study security guidelines! STUDY SECURITY GUIDELINES! puppetlabs.com/mcollective/security-overview
  • 31. Get inspired by existing modules make sure you understood them or write your own ones re-use Puppet certificates read about trust and STUDY THE SECURITY GUIDELINES!
  • 33. It's a web application! <VirtualHost *:8140> SSLEngine on SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+... SSLHonorCipherOrder on SSLCertificateFile $ssldir/certs/$fqdn.pem SSLCertificateKeyFile $ssldir/private_keys/$fqdn.pem SSLCertificateChainFile $ssldir/ca/ca_crt.pem SSLCACertificateFile $ssldir/ca/ca_crt.pem SSLCARevocationFile $ssldir/ca/ca_crl.pem SSLVerifyClient optional SSLVerifyDepth 1 SSLOptions +StdEnvVars +ExportCertData
  • 34. The Rest API # http://docs.puppetlabs.com/guides/rest_api.html https://master:8140/{environment}/{resource}/{key} available on puppet master and on VERY ancient agents (listen=true)
  • 35. Puppet REST API URI examples GET /{environment}/catalog/{node certificate name} GET /{environment}/file_bucket_file/md5/{checksum} GET /{environment}/facts/{node certname}
  • 36. Permissions http://docs.puppetlabs.com/guides/rest_auth_conf.html # auth.conf # allow all nodes to store their own reports path ~ ^/report/([^/]+)$ method save allow $1
  • 37. SSL-enabled curl example Use your certificates and discover the API: curl --cert /var/lib/puppet/ssl/certs/host.pem --key /var/lib/puppet/ssl/private_keys/host.pem --cacert /var/lib/puppet/ssl/ca/ca_crt.pem -k -H "Accept: yaml" https://master:8140/production/facts/somehostname
  • 40. Configuration for such a setup One CA is more than enough: [master] ca = false [agent] ca_server = ca.example.com Optionally, still experimental: DNS SRV records
  • 41. Chain of trust Since 3.2.1 you can use intermediate CAs to delegate trust # http://docs.puppetlabs.com/puppet/3/reference # /config_ssl_external_ca.html [agent] ssl_client_ca_auth = $certdir/issuer.pem Tell Apache about your chain: SSLCertificateChainFile "/path/to/ca_bundle.pem"
  • 42. It could look like this +------------------------+ | Root self-signed CA | +------+----------+------+ | | +----------+ +------------+ | | v v +-----------------+ +----------------+ | Master CA | | Agent CA | +--------+--------+ +--------+-------+ | | v v +-----------------+ +----------------+ | Master SSL Cert | | Agent SSL Cert | +-----------------+ +----------------+
  • 43. SSL Professional? integrate it in your existing hierarchy use your own toolchain ship signed certificates (carefully)
  • 45. Puppet and security issues Read Security Disclosures! https://puppetlabs.com/security/
  • 46. Thank Heartbleed! docs.puppetlabs.com/trouble_remediate _heartbleed_overview.html docs.puppetlabs.com/latest/reference /ssl_regenerate_certificates.html
  • 47. A specific security problem Very interesting and worth to read: CVE-2011-3872 "In versions prior to 2.6.12 and 2.7.6, the Puppet CA will improperly insert any certdnsnames values into agent certificates as well as master certificates. This bug was introduced in Puppet 0.24.0." puppet master --configprint certdnsnames puppet, puppet.example.com
  • 48. Study it! http://links.puppetlabs.com/cve20113872_remediation Have a look at the remediation toolkit And to be on the safe side, check your agent certs: openssl x509 -in test.example.com.pem -noout -text | grep 'Subject Alt' -A 1 X509v3 Subject Alternative Name: DNS:test.example.com, DNS:puppet, DNS:puppet.example.com
  • 49. WARNING "upgrading" doesn't fix a mess like this old certificates would remain valid you have to switch to a new CA... ...and this leads us to the next topic
  • 51. Bad news Puppet should allow for automatic resigning of SSL certs http://projects.puppetlabs.com/issues/7272 There is no such thing in Puppet "...will be available with Puppet Sites"
  • 52. YOU ARE ON YOUR OWN
  • 53. One way of replacing a CA stop all agents throw away their certificates create a new CA with a new name start your agents sign their new CSRs
  • 54. CA... master: rm -rf $(puppet master --configprint ssldir) agents: rm -rf $(puppet agent --configprint ssldir) # default ca_name: "Puppet CA: <master certname>" CERTNAME=$(puppet master --configprint certname) TS=$(date +%Y-%m-%d) puppet cert --generate --ca_name "Puppet CA: $CERTNAME <$TS>" $CERTNAME --dns_alt_names puppet,puppet.example.com puppet cert --allow-dns-alt-names sign $CERTNAME
  • 55. You could also get inspired by the remediation kits write your own SSH loop fix it with MCollective (carefully!) open new feature requests
  • 56. Don't like trouble? Before generating your CA: [master] ca_ttl = 20y Leave your company in time NB: expiration > 2038-01-19 == bad idea
  • 57. BTW: WE ARE HIRING ;-)
  • 58. Thank you for your attention!
  • 59. Questions? class puppetcamp { package { 'questions': ensure => answered } }