[Pkg-freeipa-devel] Bug#1070680: freeipa-client: unable to convert the attribute 'cacertificate; binary' value
Martin Pitt
mpitt at debian.org
Tue May 7 05:26:57 BST 2024
Package: python3-ipaclient
Severity: important
Version: 4.11.1-2
Tags: upstream, fixed-upstream
Forwarded: https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org/thread/PLR7R2FIZXNOQFMT3XWMBK3UYI7FWVMY/
Hello,
A few days ago, python-cryptography 42.0 entered Debian testing. This
unfortunately breaks FreeIPA. When joining an existing IPA server (running on
CentOS 8, but doesn't matter much), joining the domain fails with
| unable to convert the attribute 'cacertificate;binary' value b'0\x82[...]' to type <class 'cryptography.x509.base.Certificate'>
| Cannot obtain CA certificate
| 'ldap://f0.cockpit.lan' doesn't have a certificate.
/var/log/ipaclient-install.log has a very long traceback, excerpts:
| 2024-05-07T04:16:52Z DEBUG Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/ipapython/ipaldap.py", line 1031, in decode
| return x509.load_der_x509_certificate(val)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/ipalib/x509.py", line 445, in load_der_x509_certificate
| return IPACertificate(
| ^^^^^^^^^^^^^^^
| TypeError: Can't instantiate abstract class IPACertificate with abstract methods not_valid_after_utc, not_valid_before_utc
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/ipapython/ipaldap.py", line 374, in _sync_attr
| value = self._conn.decode(value, name)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/ipapython/ipaldap.py", line 1037, in decode
| raise ValueError(msg)
| ValueError: unable to convert the attribute 'cacertificate;binary' value b'[...]' to type <class 'cryptograph y.x509.base.Certificate'>
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/ipaclient/install/client.py", line 1739, in get_certs_from_ldap
| certs = certstore.get_ca_certs(conn, base_dn, realm, ca_enabled)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/ipalib/install/certstore.py", line 310, in get_ca_certs
| for cert in entry.get('cACertificate;binary', []):
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<frozen _collections_abc>", line 774, in get
| File "/usr/lib/python3/dist-packages/ipapython/ipaldap.py", line 510, in __getitem__
| return self._get_nice(name)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/ipapython/ipaldap.py", line 485, in _get_nice
| self._sync_attr(name)
| File "/usr/lib/python3/dist-packages/ipapython/ipaldap.py", line 376, in _sync_attr
| raise ValueError("{error} in LDAP entry '{dn}'".format(
| ValueError: unable to convert the attribute 'cacertificate;binary' value [...]
This was already reported upstream (see "Forwarded:" above), and fixed in
upstream git 4 months ago:
https://pagure.io/freeipa/c/a45a7a20d96af51d463a285cb9318582720be708?branch=master
Unfortunately there hasn't been a new release since then. But I applied the
patch straight to /usr/lib/python3/dist-packages/ , it applies with some fuzz,
and joining the domain works fine afterwards.
Thanks,
Martin
More information about the Pkg-freeipa-devel
mailing list