Hello folks.
Hopefully I'm just missing something face-palm level obvious, but
I am running into some trouble when interfacing with my CA
functionality on an IPA server cluster. My attempts at scouring
all my saved prior-comms from the mailing-list as well as several
search-engines are not enchanting me with much clue.
It appears that my need for the LetsEncrypt certs for the
user-facing Web-UI and LDAPs components are causing IPA to
dis-trust itself.
===
4-node cluster - Ubuntu19.10
(all nodes currently fully updated/patched via the official Ubuntu
repos)
===
ipa --version
VERSION: 4.8.1, API_VERSION: 2.233
===
running letsencrypt certificates successfully for HTTPs &
LDAPs connectivity
===
These 4-nodes are all happily running and replicating betwixt each
other. LDAPs is functioning great and many linux systems are able
to all join as freeipa-clients. Users and groups are replicating
and being used elegantly for many LDAP-based
authentication/authorization needs.
Overall, for these nodes, life is good.
Where I'm running into trouble is in finally wanting to leverage
certificate issuance on a per-user basis. End goal is integrating
things like yubikeys, user-cert auth, and so on.
In the UI, when I enter a user's account and select
Actions->New Certificate, I am able to successfully issue the
couple prompted 'certutil' commands to generate the user's CSR.
I
then paste in the contents of the CSR and hit 'Issue' and run into
the following error:
==========
As I then start digging into cli-mode to attempt to understand
where things are unhappy, I run into similar troubles with the
server attempting to talk to itself and not being very happy about
it.
==========
chris@REDACTED-1:~$ ipa ca-find
------------
1 CA matched
------------
Name: ipa
Description: IPA CA
Authority ID: 8acca54b-64d7-44bf-b8f7-59316213cfb6
Subject DN: CN=Certificate Authority,O=IPA.REDACTED.COM
Issuer DN: CN=Certificate Authority,O=IPA.REDACTED.COM
----------------------------
Number of entries returned 1
----------------------------
chris@REDACTED-1:~$ ipa ca-show
Name: ipa
ipa: ERROR: cannot connect to
'https://REDACTED-1.ipa.REDACTED.com:443/ca/rest/account/login':
[SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:2508)
==========
Verifying with 'openssl s_client' returns the valid and
non-expired LE cert-chain.
==========
chris@REDACTED-1:~$ openssl s_client
REDACTED-1.ipa.REDACTED.com:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = REDACTED-1.ipa.REDACTED.com
verify return:1
---
Certificate chain
0 s:CN = REDACTED-1.ipa.REDACTED.com
i:C = US, O = Let's Encrypt, CN = R3
1 s:C = US, O = Let's Encrypt, CN = R3
i:O = Digital Signature Trust Co., CN = DST Root
CA X3
---
...<output-truncated>...
---
SSL handshake has read 3046 bytes and written 413 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
...<output-truncated>...
==========
Can anyone please hit me with some clue-bat as to where I can
read to understand how to get IPA to love itself? I'm
suspecting it's likely some certificate inclusion/exception that
I need to add so that API calls and the ipa command itself will
actually respect the LE cert-chain?
Any hints would be greatly appreciated.
Thanks,
-Chris
--
Node-Nine, Inc.
chris@node-nine.com
619.354.6463