Skip to content

Commit

Permalink
ipatests: Test that a user can be issued multiple certificates
Browse files Browse the repository at this point in the history
Prevent regressions in the LDAP cache layer that caused newly
issued certificates to overwrite existing ones.

https://pagure.io/freeipa/issue/8986

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Francois Cami <fcami@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
  • Loading branch information
rcritten committed Sep 16, 2021
1 parent ba526c5 commit 540b01b
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions ipatests/test_integration/test_cert.py
Expand Up @@ -16,6 +16,7 @@
import time

from ipaplatform.paths import paths
from ipapython.dn import DN
from cryptography import x509
from cryptography.x509.oid import ExtensionOID
from cryptography.hazmat.backends import default_backend
Expand Down Expand Up @@ -183,6 +184,34 @@ def test_getcert_list_profile(self):
)
assert "profile: caServerCert" in result.stdout_text

def test_multiple_user_certificates(self):
"""Test that a user may be issued multiple certificates"""
ldap = self.master.ldap_connect()

user = 'user1'

tasks.kinit_admin(self.master)
tasks.user_add(self.master, user)

for id in (0,1):
csr_file = f'{id}.csr'
key_file = f'{id}.key'
cert_file = f'{id}.crt'
openssl_cmd = [
'openssl', 'req', '-newkey', 'rsa:2048', '-keyout', key_file,
'-nodes', '-out', csr_file, '-subj', '/CN=' + user]
self.master.run_command(openssl_cmd)

cmd_args = ['ipa', 'cert-request', '--principal', user,
'--certificate-out', cert_file, csr_file]
self.master.run_command(cmd_args)

# easier to count by pulling the LDAP entry
entry = ldap.get_entry(DN(('uid', user), ('cn', 'users'),
('cn', 'accounts'), self.master.domain.basedn))

assert len(entry.get('usercertificate')) == 2

@pytest.fixture
def test_subca_certs(self):
"""
Expand Down

0 comments on commit 540b01b

Please sign in to comment.