Hi, it seems the error happens when you run commands that require communication between IPA framework and the Certificate Server (like ipa ca-show). The workflow is the following: 1. the client (= the command "ipa ca-show") is a python process that communicates with httpd on the secure port. It seems this part is OK (ipa ca-find returns successfully). 2. the IPA framework is a wsgi app running inside httpd. The handling of "ipa ca-show" requires the framework to communicate with Dogtag, which is running inside pki-tomcat.The communication happens over a secure port with authentication based on the RA certificate. This communication is not working, probably because httpd doesn't trust the CA that issued Dogtag's server cert.
I think you need to check where httpd is getting its list of trusted CAs when it's acting as a client of Dogtag server. The code is using api.env.tls_ca_cert which is /etc/ipa/ca.crt on rhel/fedora (you can check with "ipa env tls_ca_cert" to find the value on your server) but may be different on ubuntu. flo On Thu, Jun 24, 2021 at 8:49 PM Chris Moody via FreeIPA-users < freeipa-users@lists.fedorahosted.org> wrote: > Finally had a chance to circle back and work on this further. > > Based on my prior output of: > ===== > # ipa-cacert-manage list > *IPA.REDACTED.COM <http://IPA.REDACTED.COM> IPA CA* > * IPA.REDACTED.COM <http://IPA.REDACTED.COM> IPA CA* > DSTRootCAX3 > letsencryptx3 > isrgrootx1 > lets-encrypt-r3-cross-signed > The ipa-cacert-manage command was successful > ===== > which does show the IPA CA certificate as being recognized and > installed...and the manpage for the command references: > ...CA certificate of the IPA CA (NSS database nickname: "caSigningCert > cert-pki-ca")... > > I was also able to see that dogtag implies that the IPA CA component(s) > are installed/recognized/not-expired: > ========== > REDACTED-1:~# getcert list > Number of certificates and requests being tracked: 10. > Request ID '20200416204629': > status: MONITORING > stuck: no > key pair storage: type=FILE,location='/var/lib/ipa/ra-agent.key' > certificate: type=FILE,location='/var/lib/ipa/ra-agent.pem' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=IPA RA,O=IPA.REDACTED.COM > expires: 2022-04-06 13:46:30 PDT > key usage: digitalSignature,keyEncipherment,dataEncipherment > eku: id-kp-clientAuth > pre-save command: /usr/lib/ipa/certmonger/renew_ra_cert_pre > post-save command: /usr/lib/ipa/certmonger/renew_ra_cert > track: yes > auto-renew: yes > Request ID '20200416204717': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='auditSigningCert > cert-pki-ca',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='auditSigningCert > cert-pki-ca',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=CA Audit,O=IPA.REDACTED.COM > expires: 2022-04-06 13:45:48 PDT > key usage: digitalSignature,nonRepudiation > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert > "auditSigningCert cert-pki-ca" > track: yes > auto-renew: yes > Request ID '20200416204718': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='ocspSigningCert > cert-pki-ca',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='ocspSigningCert > cert-pki-ca',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=OCSP Subsystem,O=IPA.REDACTED.COM > expires: 2022-04-06 13:45:47 PDT > eku: id-kp-OCSPSigning > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert > "ocspSigningCert cert-pki-ca" > track: yes > auto-renew: yes > Request ID '20200416204719': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='subsystemCert > cert-pki-ca',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='subsystemCert > cert-pki-ca',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=CA Subsystem,O=IPA.REDACTED.COM > expires: 2022-04-06 13:45:47 PDT > key usage: > digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment > eku: id-kp-clientAuth > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert > "subsystemCert cert-pki-ca" > track: yes > auto-renew: yes > Request ID '20200416204720': > status: MONITORING > stuck: no > key pair storage: > *type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='caSigningCert > cert-pki-ca'*,token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='caSigningCert > cert-pki-ca',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=Certificate Authority,O=IPA.REDACTED.COM > expires: 2040-06-26 14:20:56 PDT > key usage: digitalSignature,nonRepudiation,keyCertSign,cRLSign > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert > "caSigningCert cert-pki-ca" > track: yes > auto-renew: yes > Request ID '20200416204721': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='Server-Cert > cert-pki-ca',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='Server-Cert > cert-pki-ca',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=REDACTED-1.ipa.REDACTED.com,O=IPA.REDACTED.COM > expires: 2022-04-06 13:45:47 PDT > dns: REDACTED-1.ipa.REDACTED.com > key usage: digitalSignature,keyEncipherment,dataEncipherment > eku: id-kp-serverAuth > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert "Server-Cert > cert-pki-ca" > track: yes > auto-renew: yes > Request ID '20200416204854': > status: MONITORING > stuck: no > key pair storage: type=FILE,location='/var/lib/ipa/certs/kdc.key' > certificate: type=FILE,location='/var/lib/ipa/certs/kdc.crt' > CA: IPA > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=REDACTED-1.ipa.REDACTED.com,O=IPA.REDACTED.COM > expires: 2022-04-17 13:48:54 PDT > principal name: krbtgt/ipa.redacted....@ipa.redacted.com > key usage: > digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment > eku: id-kp-serverAuth,id-pkinit-KPKdc > pre-save command: > post-save command: /usr/lib/ipa/certmonger/renew_kdc_cert > track: yes > auto-renew: yes > Request ID '20200416205655': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='auditSigningCert > cert-pki-kra',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='auditSigningCert > cert-pki-kra',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=KRA Audit,O=IPA.REDACTED.COM > expires: 2022-04-06 13:53:14 PDT > key usage: digitalSignature,nonRepudiation > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert > "auditSigningCert cert-pki-kra" > track: yes > auto-renew: yes > Request ID '20200416205656': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='transportCert > cert-pki-kra',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='transportCert > cert-pki-kra',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=KRA Transport Certificate,O=IPA.REDACTED.COM > expires: 2022-04-06 13:53:13 PDT > key usage: > digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment > eku: id-kp-clientAuth > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert > "transportCert cert-pki-kra" > track: yes > auto-renew: yes > Request ID '20200416205657': > status: MONITORING > stuck: no > key pair storage: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='storageCert > cert-pki-kra',token='NSS Certificate DB',pin set > certificate: > type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='storageCert > cert-pki-kra',token='NSS Certificate DB' > CA: dogtag-ipa-ca-renew-agent > issuer: CN=Certificate Authority,O=IPA.REDACTED.COM > subject: CN=KRA Storage Certificate,O=IPA.REDACTED.COM > expires: 2022-04-06 13:53:13 PDT > key usage: > digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment > eku: id-kp-clientAuth > pre-save command: /usr/lib/ipa/certmonger/stop_pkicad > post-save command: /usr/lib/ipa/certmonger/renew_ca_cert "storageCert > cert-pki-kra" > track: yes > auto-renew: yes > ===== > > Where else should I be looking to try and understand/debug why the server > is rejecting itś own connection to itself? From my (albeit limited) > understanding thus far, all the requisite components are present and > accounted for, no? > > Do my apache logs of the following give any hints to anyone as to what > isn´t being trusted? > ===== > [Tue Jun 15 17:11:34.674975 2021] [ssl:error] [pid 31830:tid > 139703550412544] [client 2604:XXX::36:4001:58500] AH02039: Certificate > Verification: Error (19): self signed certificate in certificate chain > [Tue Jun 15 17:11:34.675088 2021] [ssl:error] [pid 31830:tid > 139703550412544] [client 2604:XXX::36:4001:58500] AH02261: Re-negotiation > handshake failed > [Tue Jun 15 17:11:34.675111 2021] [ssl:error] [pid 31830:tid > 139703550412544] SSL Library Error: error:1417C086:SSL > routines:tls_process_client_certificate:certificate verify failed > ===== > > -Chris > > > On 6/16/21 3:32 PM, Chris Moody via FreeIPA-users wrote: > > That was kinda my belief thus far as well that the hosts were not trusting > themselves - not 100% sure how things got here though. I have a hunch it > might be related to the initial deployment and the prior admin using an > outdated method to install/manage/renew the LE-certificates. > > ===== > # ipa-cacert-manage list > IPA.REDACTED.COM IPA CA > IPA.REDACTED.COM IPA CA > DSTRootCAX3 > letsencryptx3 > isrgrootx1 > lets-encrypt-r3-cross-signed > The ipa-cacert-manage command was successful > ===== > > How would I go about forcing re-installation of the host's own CA > certificate to ensure it's trust? > > Also, since these nodes are not running on an RPM-based distro, the > typical cert-store locations I have seen on other systems are not in the > same location(s) so I'm not sure totally sure every location to point > certutil to be able to examine each cert-store in depth as well (if that > might help diagnose further). I ask because I believe these were initially > built and then had the "https://github.com/freeipa/freeipa-letsencrypt/" > <https://github.com/freeipa/freeipa-letsencrypt/> project used to > initially deploy the LE-certs - prior to the ipa-cacert-manage command > being the official path toward installing/managing these external > certificates. I know because this code had been git-pulled onto these > nodes, but it obviously doesn't work properly since this git project > manipulates the paths below directly instead of managing via the > ipa-cacert-manage command. > > ex> > /etc/httpd/alias/ (<=== not on these systems) > /etc/pki/pki-tomcat/alias/ > /etc/ipa/nssdb/ > /etc/dirsrv/slapd-IPA-REDACTED-COM/ > > > Checking that project's git page now though, I see their readme now > mentions /var/lib/ipa/certs/, where I just noticed cacert.pem. > > ===== > /var/lib/ipa/certs# openssl x509 -text -noout -in cacert.pem > Certificate: > Data: > Version: 3 (0x2) > Serial Number: 1 (0x1) > Signature Algorithm: sha256WithRSAEncryption > Issuer: O = IPA.REDACTED.COM, CN = Certificate Authority > Validity > Not Before: Apr 16 20:45:46 2020 GMT > Not After : Apr 16 20:45:46 2040 GMT > Subject: O = IPA.REDACTED.COM, CN = Certificate Authority > ... > ===== > so I believe I might have just located the IPA CA cert in case I need to > re-install it. > > > > To the following question, I have the following LE-related certs > installed. And yes, I did run into issues a couple months back when LE > moved to the new certs on their end so had to import the new authority > certs to get the LE host certs to update & import. The LE certificates are > functioning and verify for both slapd and apache/tomcat. > > ===== > DSTRootCAX3.pem LetsEncryptAuthorityX3.pem isrgrootx1.pem > lets-encrypt-r3-cross-signed.pem > ===== > > Thank you all so much for the assistance through all this. > > -Chris > > > On 6/16/21 1:26 PM, Rob Crittenden via FreeIPA-users wrote: > > The error suggests that your > IPA server doesn't trust its own CA > certificate. > > Does ipa-cacert-manage list include the IPA CA? > > BTW the new certificate steps are unrelated. This affects all CA requests. > > rob > > > _______________________________________________ > FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org > To unsubscribe send an email to freeipa-users-le...@lists.fedorahosted.org > Fedora Code of Conduct: > https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: > https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org > Do not reply to spam on the list, report it: > https://pagure.io/fedora-infrastructure >
_______________________________________________ FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org To unsubscribe send an email to freeipa-users-le...@lists.fedorahosted.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure