[Freeipa-devel] [PATCH] 1079 address CA subsystem renewal issues

Rob Crittenden rcritten at redhat.com
Sun Jan 6 20:00:50 UTC 2013


Each of the CA subsystem certificates would trigger a restart during 
renewal. This generally caused one or more of the renewals to fail due 
to the CA being down.

We also need to fix the trust on the audit cert post-installation. It 
was possible that both certmonger and certutil could have the NSS 
database open read/write which is almost guaranteed to result in corruption.

So intead I picked the audit cert as the "lead" cert. It will handle 
restarting the CA.

It will also wait until all the other CA subsystem certs are in a 
MONITORING state before trying to update the trust. This should prevent 
the multiple read/write problem.

The CA wasn't actually working post-renewal anyway because the user it 
uses to bind to DS wasn't being updated properly. certmap.conf is 
confiugred to compare the cert provided by the client with that stored 
in LDAP and since we weren't updating it, dogtag couldn't properly bind 
to its own DS instance.

We also update a ou=People entry for the RA agent cert so I pulled that 
updating code into cainstance.py for easier sharing.

Finally, the wrong service name was being used for tomcat to do the 
restart. This is fixed. I've tested this with 3.1/dogtag 10 but it 
should work with dogtag 9 as well (which uses a different service naming 
convention).

This is how I test:

- ipa-server-install ...
- getcert list | grep expires
- examine the first four certs, pick an expiration date ~28 days prior
- date MMDDhhmmCCYY
- getcert list|grep status

Wait until all but one is in MONITORING. That last one should be the 
audit cert.

I usually at this point switch to watching a tail of /var/log/messages 
until the CA restarts.

Confirm that things are working with:

- ipa cert-show 1

To really be sure, use the ipa cert-request command to issue a new cert.

Ideally you'll verify that things are working, then trigger another 
renewal event. Do the getcert list|grep expires to renew the HTTP/DS 
server certs, then do this again for the CA subsystem certs.

It should come up again.

rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-rcrit-1079-renewal.patch
Type: text/x-patch
Size: 13929 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20130106/864fde5b/attachment.bin>


More information about the Freeipa-devel mailing list