mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Adding test-cases for ipa-cacert-manage
Scenario1: Setup external CA1 and install ipa-server with CA1. Setup exteranal CA2 and renew ipa-server with CA2. Get information to compare CA change for ca1 and CA2 it should show different Issuer between install and renewal. Scenario2: Renew CA Cert on Replica using ipa-cacert-manage verify that replica is caRenewalMaster Signed-off-by: Anuja More <amore@redhat.com> Reviewed-By: Michal Reznik <mreznik@redhat.com> Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
parent
61dc15e5ef
commit
51b9a82f7c
@ -20,6 +20,7 @@ from __future__ import absolute_import
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
import tempfile
|
||||
|
||||
from ipatests.pytest_plugins.integration import tasks
|
||||
from ipatests.test_integration.base import IntegrationTest
|
||||
@ -279,3 +280,60 @@ class TestExternalCAInstall(IntegrationTest):
|
||||
# Install new cert
|
||||
self.master.run_command([paths.IPA_CACERT_MANAGE, 'install',
|
||||
root_ca_fname])
|
||||
|
||||
|
||||
class TestMultipleExternalCA(IntegrationTest):
|
||||
"""Setup externally signed ca1
|
||||
|
||||
install ipa-server with externally signed ca1
|
||||
Setup externally signed ca2 and renew ipa-server with
|
||||
externally signed ca2 and check the difference in certificate
|
||||
"""
|
||||
|
||||
def test_master_install_ca1(self):
|
||||
install_server_external_ca_step1(self.master)
|
||||
# Sign CA, transport it to the host and get ipa a root ca paths.
|
||||
root_ca_fname1 = tempfile.mkdtemp(suffix='root_ca.crt', dir=paths.TMP)
|
||||
ipa_ca_fname1 = tempfile.mkdtemp(suffix='ipa_ca.crt', dir=paths.TMP)
|
||||
|
||||
ipa_csr = self.master.get_file_contents(paths.ROOT_IPA_CSR)
|
||||
|
||||
external_ca = ExternalCA()
|
||||
root_ca = external_ca.create_ca(cn='RootCA1')
|
||||
ipa_ca = external_ca.sign_csr(ipa_csr)
|
||||
self.master.put_file_contents(root_ca_fname1, root_ca)
|
||||
self.master.put_file_contents(ipa_ca_fname1, ipa_ca)
|
||||
# Step 2 of ipa-server-install.
|
||||
install_server_external_ca_step2(self.master, ipa_ca_fname1,
|
||||
root_ca_fname1)
|
||||
|
||||
cert_nick = "caSigningCert cert-pki-ca"
|
||||
result = self.master.run_command([
|
||||
'certutil', '-L', '-d', paths.PKI_TOMCAT_ALIAS_DIR,
|
||||
'-n', cert_nick])
|
||||
assert "CN=RootCA1" in result.stdout_text
|
||||
|
||||
def test_master_install_ca2(self):
|
||||
root_ca_fname2 = tempfile.mkdtemp(suffix='root_ca.crt', dir=paths.TMP)
|
||||
ipa_ca_fname2 = tempfile.mkdtemp(suffix='ipa_ca.crt', dir=paths.TMP)
|
||||
|
||||
self.master.run_command([
|
||||
paths.IPA_CACERT_MANAGE, 'renew', '--external-ca'])
|
||||
|
||||
ipa_csr = self.master.get_file_contents(paths.IPA_CA_CSR)
|
||||
|
||||
external_ca = ExternalCA()
|
||||
root_ca = external_ca.create_ca(cn='RootCA2')
|
||||
ipa_ca = external_ca.sign_csr(ipa_csr)
|
||||
self.master.put_file_contents(root_ca_fname2, root_ca)
|
||||
self.master.put_file_contents(ipa_ca_fname2, ipa_ca)
|
||||
# Step 2 of ipa-server-install.
|
||||
self.master.run_command([paths.IPA_CACERT_MANAGE, 'renew',
|
||||
'--external-cert-file', ipa_ca_fname2,
|
||||
'--external-cert-file', root_ca_fname2])
|
||||
|
||||
cert_nick = "caSigningCert cert-pki-ca"
|
||||
result = self.master.run_command([
|
||||
'certutil', '-L', '-d', paths.PKI_TOMCAT_ALIAS_DIR,
|
||||
'-n', cert_nick])
|
||||
assert "CN=RootCA2" in result.stdout_text
|
||||
|
@ -484,6 +484,19 @@ class TestRenewalMaster(IntegrationTest):
|
||||
"Replica hostname found among CA renewal masters"
|
||||
)
|
||||
|
||||
def test_renewal_replica_with_ipa_ca_cert_manage(self):
|
||||
"""Make replica as IPA CA renewal master using
|
||||
ipa-cacert-manage --renew"""
|
||||
master = self.master
|
||||
replica = self.replicas[0]
|
||||
self.assertCARenewalMaster(master, master.hostname)
|
||||
replica.run_command([paths.IPA_CACERT_MANAGE, 'renew'])
|
||||
self.assertCARenewalMaster(replica, replica.hostname)
|
||||
# set master back to ca-renewal-master
|
||||
master.run_command([paths.IPA_CACERT_MANAGE, 'renew'])
|
||||
self.assertCARenewalMaster(master, master.hostname)
|
||||
self.assertCARenewalMaster(replica, master.hostname)
|
||||
|
||||
def test_manual_renewal_master_transfer(self):
|
||||
replica = self.replicas[0]
|
||||
replica.run_command(['ipa', 'config-mod',
|
||||
|
Loading…
Reference in New Issue
Block a user