Issue #3360 has been updated by Matt Robinson.

There's been some confusion about the --allow_duplicate_certs behavior.  The 
issue seems to be that if you're using 'puppet agent' to connect to the master 
with the same certname that is already signed, in both 2.6.x and 2.7.x the 
behavior is the same (when the 2.7.x master has --allow_duplicate_certs set) in 
that you get the message:

    err: Could not request certificate: Retrieved certificate does not match 
private key; please remove certificate from server and regenerate it with the 
current key

However if you manually generate the Certificate Signing Request (CSR) using 
curl or the new 'puppet certificate' face, it works.  I haven't got to the 
bottom of debugging, but it the agent is obviously doing something different in 
which key it's using when it's verifying a certificate (presumably the CA's?).  
So this isn't a regression in that with --allow_duplicate_certs set the 
behavior is the same in 2.7rc as in 2.6.  The new question is if the behavior 
is the desired behavior or not.

One thing is clear, our SSL error messages could be a lot clearer.  I'm going 
to open a ticket to address the question of desired behavior and for better ssl 
error messages in this case.  I'll link both tickets to #3360.
----------------------------------------
Bug #3360: Add a flag to make puppet ca behavior on receipt of duplicate 
request configurable
https://projects.puppetlabs.com/issues/3360

Author: Claus Divossen
Status: Closed
Priority: Normal
Assignee: Nick Lewis
Category: SSL
Target version: Statler
Affected Puppet version: 0.25.4
Keywords: puppetca autosigning signed certificate
Branch: 


The puppetca accepts CSRs for CNs/nodenames that already have a signed 
certificate, and signing the new certificates will overwrite the old certs 
without warning or further validation. This seems to be introduced with the 
work on Bug #2890.

The puppetca does not care about already exisiting signed certificates anymore. 
This is especially dangerous in combination with autosigning: When autosigning 
is active, any client can pretend to be another node as long as the desired 
node name matches the autosigning pattern(s). In consequence, autosigning 
completely disables the authorization process for matching node names. 

If there are node specific secrets distributed with puppet, an attacker can 
simply pretend to be another node with the "puppetd --fqdn" option and he will 
get the other node's secrets without any questions asked. 

The default behaviour should be to reject new CSRs for a node that already has 
a signed cert, especially with autosigning. When puppetca is run manually, a 
warning might be sufficient.

**[Nigel]** See [Note 33](http://projects.puppetlabs.com/issues/3360#note-33) 
for the plan of action


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to