Jira (PUP-9032) As an intermediate cert user I expect the ca_crl to not be changed by Puppet cert clean, that update should be in the Puppet crl.

1 view
Skip to first unread message

Adam Buxton (JIRA)

unread,
Aug 1, 2018, 7:48:02 AM8/1/18
to puppe...@googlegroups.com
Adam Buxton created an issue
 
Puppet / Improvement PUP-9032
As an intermediate cert user I expect the ca_crl to not be changed by Puppet cert clean, that update should be in the Puppet crl.
Issue Type: Improvement Improvement
Assignee: Unassigned
Created: 2018/08/01 4:47 AM
Priority: Normal Normal
Reporter: Adam Buxton

Puppet cert clean updates /etc/puppetlabs/puppet/ssl/ca/ca_crl.pem

even when the puppet master is set as an intermediate to an external CA, this means that on next update from the external ca of the crl all entries from puppet as the intermediates are lost in the ca_crl.pem. 

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Josh Cooper (JIRA)

unread,
Aug 2, 2018, 1:14:07 PM8/2/18
to puppe...@googlegroups.com

Josh Cooper (JIRA)

unread,
Aug 2, 2018, 1:16:02 PM8/2/18
to puppe...@googlegroups.com

Maggie Dreyer (JIRA)

unread,
Aug 2, 2018, 1:40:03 PM8/2/18
to puppe...@googlegroups.com
Maggie Dreyer commented on Improvement PUP-9032

First question, what version of puppet/puppetserver are you asking about? Because the whole workflow around this is very different in Puppet 5 vs. in Puppet 6, with the most notable thing being that puppet cert clean already does not work in an intermediate scenario on our master branches (heading for Puppet 6) where full CRL checking is possible (it doesn't respect the CRL chain and overwrites both CRLs when it updates the file). In Puppet 6, we are removing puppet cert clean in favor of an analogous command under the puppetserver ca CLI, which uses the certificate_status API to revoke certs and correctly respects chained CRLs. It is also currently possible to use the API directly for the same result (though this won't clean up the files on disk).

In Puppet 5, we only provide leaf-checking of CRL chains. This means that even if you update the CRL from your root CA, Puppet will ignore it. Seems you would only "lose" the revocations if you're overwriting the Intermediate CA's chain completely, leaving only the root's CRL in the file, which probably doesn't work regardless unless you have CRL checking disabled (in which case why are you updating the CRL in the first place?).

If I'm misunderstanding something, please let me know, but it seems like if someone with and external root CA wants to update their root's CRL in the chain, it is up to them to merge them properly, i.e. by only replacing the second cert in the file and leaving the first one belonging to the intermediate CA the same.

Adam Buxton (JIRA)

unread,
Aug 7, 2018, 5:27:02 AM8/7/18
to puppe...@googlegroups.com
Adam Buxton commented on Improvement PUP-9032

Maggie Dreyer I'm talking about current Puppet on 2018.1, and this relates directly leaf checking, the ORG i was onsite with are using shortlived CRLS (sub 30days) so they have a real issue were they exposing themselves losing entries from the CRL when they need to replace the ca_crl. I think the piece they have missed in process is they can make the ca_crl a compound file of the existing and new file if i'm understanding correctly not just reoplace the files like for like. 

Maggie Dreyer (JIRA)

unread,
Sep 27, 2019, 2:16:03 PM9/27/19
to puppe...@googlegroups.com
Maggie Dreyer commented on Improvement PUP-9032

Agreed that the correct solution here is to update only the root's entry in the CRL file and leave the leaf CRL unchanged. Closing, please reopen if there is another issue here.

Reply all
Reply to author
Forward
0 new messages