pgreco / rpms / ipa

Forked from forks/areguera/rpms/ipa 4 years ago
Clone

Blame SOURCES/0105-Upgrade-configure-local-full-PKINIT-depending-on-the.patch

483b06
From c40683f85776f401b3e6bb0a3a69a48a206ab633 Mon Sep 17 00:00:00 2001
483b06
From: Martin Babinsky <mbabinsk@redhat.com>
483b06
Date: Thu, 6 Apr 2017 18:52:05 +0200
483b06
Subject: [PATCH] Upgrade: configure local/full PKINIT depending on the master
483b06
 status
483b06
483b06
The upgrader has been modified to configure either local or full PKINIT
483b06
depending on the CA status. Additionally, the new PKINIT configuration
483b06
will be written to the master's KDC entry.
483b06
483b06
https://pagure.io/freeipa/issue/6830
483b06
http://www.freeipa.org/page/V4/Kerberos_PKINIT
483b06
483b06
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
483b06
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
483b06
Reviewed-By: Martin Basti <mbasti@redhat.com>
483b06
Reviewed-By: Simo Sorce <ssorce@redhat.com>
483b06
---
483b06
 ipaserver/install/server/upgrade.py | 15 +++++++++------
483b06
 1 file changed, 9 insertions(+), 6 deletions(-)
483b06
483b06
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
483b06
index ea2918f5037898b6b8dc601441a439b6150d54e5..8da918114066598ec5a74098d85dfef06d22bf86 100644
483b06
--- a/ipaserver/install/server/upgrade.py
483b06
+++ b/ipaserver/install/server/upgrade.py
483b06
@@ -1485,14 +1485,17 @@ def add_default_caacl(ca):
483b06
 def setup_pkinit(krb):
483b06
     root_logger.info("[Setup PKINIT]")
483b06
 
483b06
-    if not api.Command.ca_is_enabled()['result']:
483b06
-        root_logger.info("CA is not enabled")
483b06
-        return
483b06
+    pkinit_is_enabled = krbinstance.is_pkinit_enabled()
483b06
+    ca_is_enabled = api.Command.ca_is_enabled()['result']
483b06
 
483b06
-    if not os.path.exists(paths.KDC_CERT):
483b06
-        root_logger.info("Requesting PKINIT certificate")
483b06
-        krb.setup_pkinit()
483b06
+    if not pkinit_is_enabled:
483b06
+        if ca_is_enabled:
483b06
+            krb.issue_ipa_ca_signed_pkinit_certs()
483b06
+        else:
483b06
+            krb.issue_selfsigned_pkinit_certs()
483b06
 
483b06
+    # reconfigure KDC just in case in order to handle potentially broken
483b06
+    # 4.5.0 -> 4.5.1 upgrade path
483b06
     replacevars = dict()
483b06
     replacevars['pkinit_identity'] = 'FILE:{},{}'.format(
483b06
         paths.KDC_CERT,paths.KDC_KEY)
483b06
-- 
483b06
2.12.2
483b06