On 10/04/2011 09:32 AM, Rob Crittenden wrote:
Adam Young wrote:
It is possible to generate a Certificate signing request from the
browser, if we use Mozilla specific code. I've mildly hacked the Mozilla
sample code to work with JQuery and to display the CSR to the screen,
instead of sending it right to the server.
I'd see this working something like this:
1. add the certificate attribute to the user plugin.
2. On the user page, if the principal of the user selected matches the
kerberos principal for the logged user, show the certificate control
3. The certificate control allows the user to request a new certificate.
4. If the user has a certificate, the certificate control allow the user
to download the certificate.
I have to look into the details, but the certificate shoud only be
useable by default in the browser that originally requested it. However,
it is fairly easy to export the certificate, along with the primary keys
that generated its CSR, such that it would be usable elsewhere: For
This seems like fairly simple to implement. We would not even have to
extend the API. We keep the certificate request separate from the user
until it is signed, and then add it to the user object. Thus it would be
created as a side effect of:
ipa cert-request --add --principal=abrad...@dev.example.com abradley.csr
Yes, CRMF is how we'll eventually add user certificate support, but
this is the easy part.
On the server side we need to add support for multiple certificate
profiles (your above request issues a server cert for the user abradley).
We also need a way to manage a queue of requests. User certificates
are a different beast from server certs and in many cases will require
the intervention of a security officer, or some other 3rd party
Basic user certificates should probably be issued without security
officer intervention, as they merely play the same role as the Kerberos
credential. Where it gets tricky is if we deactivate a user, we should
put the certificate on Hold, which means we need to update the CRLs we
publish, but CS should handle this fairly easily. We would need to
expand the Cert plugin to determine if a request is for a user
certificate or a server certificate, but it has enough information do
However, there might be other certificates that we want to issue in the
future. If I understand correctly, this work should be delegated to
Certificate server, and the IPA Cert plugin needs to be expanded to
track the certificate requests pending in the CS instance.
Freeipa-devel mailing list