We use the ipa cert-revoke command to revoke user certificates. When we run this command on the master everything goes well, however when we run it from a client the command appears to work correctly (including a REVOKED status in the GUI) however the certificate never actually gets added to the Certificate Revocation List.
ipa cert-revoke
ipa-certrequest
kinit admin
ipa cert-revoke <Serial Number> --revocation-reason=4
ipa-crlgen-manage disable ; ipa-crlgen-manage enable
wget https://ipa.example.com/ipa/crl/MasterCRL.bin
openssl crl -in MasterCRL.bin -text -noout
The certificate is shown as REVOKED in the GUI but the regenerated CRL does not contain the revoked certificate.
The exact same CLI steps on master do work as expected and revoking through the GUI also works as expected.
ipa cert-revoke should either throw an error or perform all required actions.
The master runs on the following docker image: freeipa/freeipa-server:fedora-39-4.11.0
$ rpm -q freeipa-server freeipa-client ipa-server ipa-client 389-ds-base pki-ca krb5-server
freeipa-server-4.11.0-7.fc39.x86_64 freeipa-client-4.11.0-7.fc39.x86_64 package ipa-server is not installed package ipa-client is not installed 389-ds-base-2.4.4-1.fc39.x86_64 package pki-ca is not installed krb5-server-1.21.2-2.fc39.x86_64
The clients run on Ubuntu 20.04, IPA version 4.8.6.
All commands are executed on an IPA server so there should be no difference where the request came from.
If you want to force CRL generation, while disabling and re-enabling via ipa-crlgen-manage is certainly clever, there is a PKI XML endpoint for it which doesn't require restarting the CA twice in a row.
curl -v https://ipa.example.test:8443/ca/agent/ca/updateCRL --cert /var/lib/ipa/ra-agent.pem --key /var/lib/ipa/ra-agent.key
This will be both more efficient and reliable.
Indeed it is a very unexpected behavior and moreover it is strange that IPA does show the certificates as revoked through the GUI and the CLI, they just never get added to the CRL if the command ran from a client.
That's good to know, thanks. Although I think it shouldn't affect the contents of the CRL.
I can't reproduce the behavior you are seeing. When I revoke a cert and force a CRL update (using curl) then regardless of where the revocation request originated.
Metadata Update from @rcritten: - Custom field affects_doc adjusted to on - Custom field knownissue adjusted to on - Issue close_status updated to: worksforme - Issue status updated to: Closed (was: Open)
I may be seeing this. I'll try to debug in this thread: https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org/thread/DL3HTLSR446OAMM5HT5RUQMIL4DHNXOE/
If you have something reproduce I'd recommend opening a JIRA case against pki-core. IPA only configures CRL generation. Beyond that it doesn't have a hand in it.
Done, at https://issues.redhat.com/browse/RHEL-30280
The findings are that ipa-crlgen-manage should remove the value of ca.certStatusUpdateInterval when setting a server as the CRL generator. The man page could include this detail as well, along with the other changes, for future troubleshooting.