Bug 1956550

Summary: IPA server installation fails when cert contains non-ASCII character
Product: Red Hat Enterprise Linux 7 Reporter: Bijesh Thekkepat <bthekkep>
Component: ipaAssignee: Florence Blanc-Renaud <frenaud>
Status: CLOSED ERRATA QA Contact: ipa-qe <ipa-qe>
Severity: high Docs Contact:
Priority: high    
Version: 7.9CC: amore, bthekkep, frenaud, jmiracol, jreznik, mpolovka, pcech, rcritten, rcunha, ssidhaye, tscherf
Target Milestone: rcKeywords: TestCaseProvided, Triaged, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: ipa-4.6.8-5.el7_9.7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-07-21 01:10:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Comment 4 Rob Crittenden 2021-05-03 22:09:50 UTC
It is failing while configuring the client parts on the server. Please attach /var/log/ipaclient-install.log as well.

Comment 5 Bijesh Thekkepat 2021-05-03 22:13:23 UTC
Hello Rob,

Yes, the client part fails as well.
ipaclient-install-02930848.log is already attached, Comment 3

Let me know if you want it reattached.

Comment 6 Rob Crittenden 2021-05-04 15:51:34 UTC
Sorry, I loaded the BZ before all attachments had been made.

It is failing trying to add a certificate to /etc/ipa/nssdb, the shared IPA system NSS database. The certutil command-line is logged after obfuscating any possible secrets and it is failing in that obfuscation step on the upper-case eñe (unicode /xd1) in the issuer subject.

Can you provide the output of:

ldapsearch -x -D 'cn=directory manager' -W -b cn=certificates,cn=ipa,cn=etc,dc=example,dc=test

replacing the dc's with the appropriate values for your domain?

Comment 12 Florence Blanc-Renaud 2021-06-09 12:10:29 UTC
Issue can be reproduced on rhel 7.9 (with python2). The error happens when calling certutil to add the CA in the NSS databases. The parameter storing the nickname is a unicode and the method ipautil.run is expecting only string or bytes:
    arg_string = nolog_replace(' '.join(_log_arg(a) for a in args), nolog)

with the following definition for _log_arg:

if six.PY3:
    def _log_arg(s):
        """Convert string or bytes to a string suitable for logging"""
        if isinstance(s, bytes):
            return s.decode(locale.getpreferredencoding(),
                            errors='replace')
        else:
            return s
else:
    _log_arg = str

Since nickname is a utf-8 unicode, str(nickname) fails with encoding issue.

Comment 13 Florence Blanc-Renaud 2021-06-09 15:46:26 UTC
Upstream ticket:
https://pagure.io/freeipa/issue/8879

Comment 15 Florence Blanc-Renaud 2021-06-15 07:37:05 UTC
Test case is available upstream in test_integration/test_caless.py::TestServerInstall::test_valid_certs

Comment 21 anuja 2021-06-28 07:48:20 UTC
Verified :

2021-06-24T09:50:16 TASK [List installed IPA packages version] *************************************
2021-06-24T09:50:17 ok: [master.testrelm.test] => (item=ipa-server) => 
2021-06-24T09:50:17   msg:
2021-06-24T09:50:17   - arch: x86_64
2021-06-24T09:50:17     epoch: null
2021-06-24T09:50:17     name: ipa-server
2021-06-24T09:50:17     release: 5.el7_9.7
2021-06-24T09:50:17     source: rpm
2021-06-24T09:50:17     version: 4.6.8

2021-06-24T10:35:46 =========================== short test summary info ============================
2021-06-24T10:35:46 PASSED ipatests/test_integration/test_caless.py::TestServerInstall::test_nonexistent_ca_pem_file
2021-06-24T10:35:46 PASSED ipatests/test_integration/test_caless.py::TestServerInstall::test_unknown_ca
2021-06-24T10:35:46 PASSED ipatests/test_integration/test_caless.py::TestServerInstall::test_ca_server_cert
....
....
2021-06-24T10:35:46 PASSED ipatests/test_integration/test_caless.py::TestServerInstall::test_ds_intermediate_ca
2021-06-24T10:35:46 PASSED ipatests/test_integration/test_caless.py::TestServerInstall::test_ca_self_signed
2021-06-24T10:35:46 PASSED ipatests/test_integration/test_caless.py::TestServerInstall::test_valid_certs

Based on this marking bug as verified.

Comment 25 errata-xmlrpc 2021-07-21 01:10:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (ipa bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:2807