Project

General

Profile

SSL » History » Revision 6

Revision 5 (Corey Osman, 11/11/2011 06:42 PM) → Revision 6/11 (Jacob McCann, 03/22/2012 03:31 PM)

h1. SSL setup 

 The smart proxy can work in SSL mode, where both sides verify and trust each other. 

 h2. Configure SSL certificates 

 This request will only be accepted if the SSL certificates match. Therefore the client's private key grants access to proxy's funtionality, so protect it. 

 As this tool is meant to interoperate with a puppet installation I suggest that you use the Certificate Authority provided by a puppet server as your CA. 

 # Login to your puppetmaster, which has a Certificate Authority 
 # Use the puppet tools to create a new certificate 
 <pre><code> 
   puppetca --generate <proxy-FQDN> 
 </pre></code> 
 # Copy the certificate keys to your Windows host 
 <pre><code> 
     scp puppetmaster:/var/lib/puppet/ssl/ca/signed/<proxy-FQDN>.pem signed.pem 
     scp puppetmaster:/var/lib/puppet/ssl/private_keys/<proxy-FQDN>.pem private.pem 
 </pre></code> 
 # Copy the ssl/certs/ca.pem from any puppet client to the smart-proxy\config directory. This ensures that the proxy trusts the same CA as a puppet client. 

 h2. Troubleshooting 

 <pre> 
 Unable to save 
 Unable to communicate with the proxy: No such file or directory - /.puppet/var/ssl/certs/foremanserver.domainname.corp.pem 
 Please check the proxy is configured and running on the host before saving. 
 </pre> 

 Workaround 
 # mkdir /.puppet 
 # ln -s /var/lib/puppet/ /.puppet/var 
 # add foreman, foreman-proxy to puppet group 
 # chmod -R 640 /var/lib/puppet/ssl/private_keys 
 # chgrp -R puppet /var/lib/puppet/ssl/private_keys 
 #  

 *Example 2:* 
 I also ran into this issue ... here is my breakdown of it. 

 This seems to stem from the foreman webserver needing access to it's certificate.    It looks for it down the webuser home directory for .puppet which somewhat is supposed to mimic the puppetdir. 

 So for my SLES system which: 
 * Webuser - wwwrun 
 * Webuser homedir - /var/lib/wwwrun 
 * Puppet dir - /etc/puppet 

 Looks in /var/lib/wwwrun/.puppet/ssl/certs 

 So I needed to: 
 <pre> 
 add wwwrun to puppet group 
 cd /var/lib/wwwrun 
 ln -s /etc/puppet .puppet 
 chgrp -R puppet /etc/puppet/ssl/private_keys 
 chmod 640 /etc/puppet/ssl/private_keys/* 
 </pre>