[Freeipa-users] Public CA signed Certificate import failure
Rob Crittenden
rcritten at redhat.com
Tue Jul 21 14:44:52 UTC 2009
James Roman wrote:
> Rob Crittenden wrote:
>> James Roman wrote:
>>> First off, thanks Rob for the direction on creating a certificate.
>>> After reading up on Mozilla's NSS, I think I've got a pretty fair
>>> grounding.
>>>
>>> So I successfully generated a CSR and had it signed. I imported my
>>> certificate and CA chain into the NSS database and exported it to a
>>> PKCS12 cert. I am primarily concerned with using the public cert on
>>> the HTTP interface. However, when I go to import it using
>>> ipa-server-certificate, it chokes on the names in the CA certificate
>>> chain. (One of the certs uses full website address for the name.) I
>>> can manually import each of the certificates in the CA chain using
>>> certutil on the /etc/httpd/alias directory.
>>
>> What do you mean by choke? Do you have a python backtrace or can you
>> send me the ipaserver-install.log?
> Here is what I get when importing the p12 file using
> "ipa-server-certinstall". The reasons for the errors are fairly
> self-evident when you see how it parses the command line arguments.
>
> # ipa-server-certinstall -w
> /data/ipacerts/godaddy/server.suffix.com-godaddycert.pfx
> --http_pin='mysecretpin'
> an unexpected error occurred: Command '/usr/bin/certutil -d
> /etc/httpd/alias -M -n Builtin Object Token:Go Daddy Class 2 CA" [OU=Go
> Daddy Class 2 Certification Authority,O="The Go Daddy Group, Inc. -t
> CT,CT,' returned non-zero exit status 255
> Traceback (most recent call last):
> File "/usr/sbin/ipa-server-certinstall", line 137, in main
> server_cert = import_cert(dirname, pkcs12_fname, options.http_pin, "")
> File "/usr/sbin/ipa-server-certinstall", line 116, in import_cert
> cdb.trust_root_cert(server_cert[0])
> File "/usr/lib/python2.5/site-packages/ipaserver/certs.py", line 322,
> in trust_root_cert
> "-t", "CT,CT,"])
> File "/usr/lib/python2.5/site-packages/ipaserver/certs.py", line 126,
> in run_certutil
> return ipautil.run(new_args, stdin)
> File "/usr/lib/python2.5/site-packages/ipa/ipautil.py", line 97, in run
> raise CalledProcessError(p.returncode, ' '.join(args))
> CalledProcessError: Command '/usr/bin/certutil -d /etc/httpd/alias -M -n
> Builtin Object Token:Go Daddy Class 2 CA" [OU=Go Daddy Class 2
> Certification Authority,O="The Go Daddy Group, Inc. -t CT,CT,' returned
> non-zero exit status 255
>
> I'm left with most of the certificate chain
Ok, we shouldn't need to mess with builtin CAs at all.
Can you file a bug on this?
In the meantime, this patch should fix things for you:
diff --git a/ipa-server/ipaserver/certs.py b/ipa-server/ipaserver/certs.py
index 8cb1d08..610ca1d 100644
--- a/ipa-server/ipaserver/certs.py
+++ b/ipa-server/ipaserver/certs.py
@@ -318,8 +318,9 @@ class CertDB(object):
def trust_root_cert(self, nickname):
root_nickname = self.find_root_cert(nickname)
- self.run_certutil(["-M", "-n", root_nickname,
- "-t", "CT,CT,"])
+ if root_nickname is not None and root_nickname[:7] != "Builtin":
+ self.run_certutil(["-M", "-n", root_nickname,
+ "-t", "CT,CT,"])
def find_server_certs(self):
p = subprocess.Popen(["/usr/bin/certutil", "-d", self.secdir,
If you are careful you should be able to modify, as root, the IPA python
source. You'll find it in
/usr/lib/python2.5/site-packages/ipaserver/certs.py
Indentation matters in python so be sure to apply this exactly.
rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3245 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/freeipa-users/attachments/20090721/d9496d43/attachment.bin>
More information about the Freeipa-users
mailing list