Hi,
On Wed, Jun 18, 2025 at 5:32 PM Schrier, William (Contractor) via
FreeIPA-users <[email protected]> wrote:
> Our FreeIPA CA cert (externally signed via a Microsoft AD CA) recently
> expired. Unfortunately, I didn’t notice it until after it expired. After
> jumping through some hoops and some help from Florence’s blog, I was able
> to get new certificates installed successfully (at least according to the
> ipa-cacert-manage and ipa-certupdate commands). However, at this point,
> pki-tomcat will not start and ipa-getcert and getcert don’t really show
> what I would expect…
>
>
>
> Oh – also, I should point out that I’m running on Oracle Linux 7.9 and
> FreeIPA VERSION: 4.6.8, API_VERSION: 2.237 – yes, I know I’m far from the
> latest out there, but until I can upgrade this server to a new OS, I’m kind
> of stuck… and unfortunately, my situation here is making upgrading the OS
> difficult, so please forgive me that I’m asking for assistance on such an
> old setup, but know that the goal is to upgrade, but that’s not possible at
> this exact moment, so if I can fix this current setup to see me through
> until I can upgrade, that would be really good.
>
>
>
> Any suggestions so we can get these certs installed properly and get
> pki-tomcat started would be appreciated!
>
>
>
> When I run ipa-getcert list, I get the following (which is still showing
> the old cert):
>
> # ipa-getcert list
>
> Number of certificates and requests being tracked: 7.
>
7 certificates are tracked, so I guess they are:
- certificate: type=FILE,location='*/var/lib/ipa/ra-agent.pem*'
- certificate:
type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='*auditSigningCert
cert-pki-ca*',token='NSS Certificate DB'
- certificate:
type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='*ocspSigningCert
cert-pki-ca*',token='NSS Certificate DB'
- certificate:
type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='*subsystemCert
cert-pki-ca*',token='NSS Certificate DB'
- certificate:
type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='*caSigningCert
cert-pki-ca*',token='NSS Certificate DB'
- certificate:
type=NSSDB,location='/etc/pki/pki-tomcat/alias',nickname='*Server-Cert
cert-pki-ca*',token='NSS Certificate DB'
- certificate: type=FILE,location='*/var/kerberos/krb5kdc/kdc.crt*'
And the following ones are not tracked: the HTTPd server cert (stored
in /etc/httpd/alias) and the LDAP server cert (stored
in /etc/dirsrv/slapd-XXX).
You need to:
- check if they are still valid
- find their nickname using certutil -L -d
/etc/dirsrv/slapd-IPA-TEST/ and certutil -L -d /etc/httpd/alias (usually
it's Server-Cert but it may differ)
# certutil -L -d /etc/dirsrv/slapd-IPA-TEST/
Certificate Nickname Trust
Attributes
SSL,S/MIME,JAR/XPI
IPA.TEST IPA CA CT,C,C
*Server-Cert* u,u,u
- check if they are still valid: certutil -L
-d /etc/dirsrv/slapd-IPA-TEST/ -n Server-Cert | grep -C2 "Validity:"
# certutil -L -d /etc/dirsrv/slapd-IPA-TEST/ -n Server-Cert | grep -C2
"Validity:"
Signature Algorithm: PKCS #1 SHA-256 With RSA Encryption
*Issuer: "CN=Certificate Authority,O=IPA.TEST"*
Validity:
*Not Before*: Tue Apr 08 09:27:53 2025
*Not After* : Fri Apr 09 09:27:53 2027
- check if their issuer is known by IPA (it should be present in
/etc/ipa/ca.crt and in the various NSS databases). If not, you
need to add
the whole chain with intermediate certs if any.
- when you are sure that the HTTPd and LDAP certs are good, restart IPA
services with ipactl start --ignore-service-failures
- then we'll re-assess the situation and fix the other certs.
flo
Request ID '20210201172924':
>
> status: NEED_TO_SUBMIT
>
> ca-error: Server at https://[hostname]/ipa/xml failed request,
> will retry: 907 (RPC failed at server. cannot connect to
> 'https://[hostname]:443/ca/rest/account/login':
> [SSL: SSL_HANDSHAKE_FAILURE] ssl handshake failure (_ssl.c:1826)).
>
> stuck: no
>
> key pair storage:
> type=FILE,location='/var/kerberos/krb5kdc/kdc.key'
>
> certificate: type=FILE,location='/var/kerberos/krb5kdc/kdc.crt'
>
> CA: IPA
>
> issuer: CN=Certificate Authority,O=[DOMAIN]
>
> subject: CN=[hostname],O=[DOMAIN]
>
> expires: 2025-05-31 15:41:32 UTC
>
> principal name: krbtgt/[DOMAIN@DOMAIN]
> <krbtgt/[email protected]>
>
> key usage:
> digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment
>
> eku: id-kp-serverAuth,id-pkinit-KPKdc
>
> pre-save command:
>
> post-save command: /usr/libexec/ipa/certmonger/renew_kdc_cert
>
> track: yes
>
> auto-renew: yes
>
>
>
> And running getcert list returns mostly the old expired cert, but with one
> entry with the new cert:
>
> # getcert list | egrep "Request ID|status:|CA:|expires:"
>
> Request ID '20210201172746':
>
> status: CA_UNREACHABLE
>
> CA: dogtag-ipa-ca-renew-agent
>
> expires: 2025-05-31 15:41:32 UTC
>
> Request ID '20210201172819':
>
> status: MONITORING
>
> CA: dogtag-ipa-ca-renew-agent
>
> expires: 2025-05-31 15:41:32 UTC
>
> Request ID '20210201172820':
>
> status: MONITORING
>
> CA: dogtag-ipa-ca-renew-agent
>
> expires: 2025-05-31 15:41:32 UTC
>
> Request ID '20210201172821':
>
> status: MONITORING
>
> CA: dogtag-ipa-ca-renew-agent
>
> expires: 2025-05-31 15:41:32 UTC
>
> Request ID '20210201172822':
>
> status: MONITORING
>
> CA: dogtag-ipa-ca-renew-agent
>
> expires: 2027-06-09 13:26:26 UTC
>
> Request ID '20210201172823':
>
> status: MONITORING
>
> CA: dogtag-ipa-ca-renew-agent
>
> expires: 2025-05-31 15:41:32 UTC
>
> Request ID '20210201172924':
>
> status: CA_UNREACHABLE
>
> CA: IPA
>
> expires: 2025-05-31 15:41:32 UTC
>
>
>
> I do see the following in /var/log/pki/pki-tomcat/ca/debug:
>
> Could not connect to LDAP server host [hostname] port 636 Error
> netscape.ldap.LDAPException: Authentication failed (48)
>
> Internal Database Error encountered: Could not connect to LDAP server host
> [hostname] port 636 Error netscape.ldap.LDAPException: Authentication
> failed (48)
>
>
>
> And /var/log/pki/pki-tomcat/localhost.[date].log gets tons of these:
>
> SEVERE: Exception Processing /ca/admin/ca/getStatus
>
> javax.ws.rs.ServiceUnavailableException: Subsystem unavailable
>
> at
> com.netscape.cms.tomcat.ProxyRealm.findSecurityConstraints(ProxyRealm.java:145)
>
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
>
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
>
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
>
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
>
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>
> at java.lang.Thread.run(Thread.java:750)
>
>
>
> SEVERE: Exception Processing /ca/ee/ca/profileSubmit
>
> javax.ws.rs.ServiceUnavailableException: Subsystem unavailable
>
> at
> com.netscape.cms.tomcat.ProxyRealm.findSecurityConstraints(ProxyRealm.java:145)
>
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
>
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
>
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
>
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
>
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>
> at java.lang.Thread.run(Thread.java:750)
>
>
> --
> _______________________________________________
> FreeIPA-users mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> 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/[email protected]
> Do not reply to spam, report it:
> https://pagure.io/fedora-infrastructure/new_issue
>
--
_______________________________________________
FreeIPA-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
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/[email protected]
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue