summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Kupka <dkupka@redhat.com>2016-02-17 15:18:17 +0100
committerJan Cholasta <jcholast@redhat.com>2016-02-26 08:27:44 +0100
commit4337c4f9c40b2587280eeff5f99ee8dd03092e17 (patch)
treeda74e6ec28b11e111c55d41d13ba6bda9eaae599
parent431a1a038396d271f680cc4bd4f0bddf617be823 (diff)
httpinstance: add start_tracking_certificates method
Configure certmonger to start tracking certificate for httpd. https://fedorahosted.org/freeipa/ticket/5586 Reviewed-By: Jan Cholasta <jcholast@redhat.com>
-rw-r--r--ipaserver/install/httpinstance.py5
-rw-r--r--ipaserver/install/server/upgrade.py19
2 files changed, 20 insertions, 4 deletions
diff --git a/ipaserver/install/httpinstance.py b/ipaserver/install/httpinstance.py
index 44e0a7fe0..54aeb8ae7 100644
--- a/ipaserver/install/httpinstance.py
+++ b/ipaserver/install/httpinstance.py
@@ -552,3 +552,8 @@ class HTTPInstance(service.Service):
def stop_tracking_certificates(self):
db = certs.CertDB(api.env.realm)
db.untrack_server_cert(self.cert_nickname)
+
+ def start_tracking_certificates(self):
+ db = certs.CertDB(self.realm)
+ db.track_server_cert(self.cert_nickname, self.principal,
+ db.passwd_fname, 'restart_httpd')
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
index f74034aff..1b6b0cd3a 100644
--- a/ipaserver/install/server/upgrade.py
+++ b/ipaserver/install/server/upgrade.py
@@ -792,7 +792,7 @@ def named_root_key_include():
return True
-def certificate_renewal_update(ca, ds):
+def certificate_renewal_update(ca, ds, http):
"""
Update certmonger certificate renewal configuration.
"""
@@ -857,6 +857,14 @@ def certificate_renewal_update(ca, ds):
None,
),
(
+ paths.HTTPD_ALIAS_DIR,
+ 'Server-Cert',
+ 'IPA',
+ None,
+ template % 'restart_httpd',
+ None,
+ ),
+ (
dirsrv_dir,
'Server-Cert',
'IPA',
@@ -901,6 +909,7 @@ def certificate_renewal_update(ca, ds):
# again with new configuration:
ca.stop_tracking_certificates()
ds.stop_tracking_certificates(serverid)
+ http.stop_tracking_certificates()
if not sysupgrade.get_upgrade_state('dogtag',
'certificate_renewal_update_1'):
@@ -915,6 +924,7 @@ def certificate_renewal_update(ca, ds):
ca.configure_agent_renewal()
ca.track_servercert()
ds.start_tracking_certificates(serverid)
+ http.start_tracking_certificates()
sysupgrade.set_upgrade_state('dogtag', state, True)
root_logger.info("Certmonger certificate renewal configuration updated to "
@@ -1506,6 +1516,9 @@ def upgrade_configuration():
fstore.restore_file(removed_sysconfig_file)
http = httpinstance.HTTPInstance(fstore)
+ http.fqdn = fqdn
+ http.realm = api.env.realm
+ http.principal = "HTTP/%s@%s" % (http.fqdn, http.realm)
http.configure_selinux_for_httpd()
http.change_mod_nss_port_from_http()
@@ -1544,8 +1557,6 @@ def upgrade_configuration():
# 389-ds needs to be running
ds.start()
http.ldapi = True
- http.fqdn = fqdn
- http.realm = api.env.realm
http.suffix = ipautil.realm_to_suffix(api.env.realm)
http.ldap_connect()
httpinstance.create_kdcproxy_user()
@@ -1627,7 +1638,7 @@ def upgrade_configuration():
ca_restart,
ca_upgrade_schema(ca),
upgrade_ca_audit_cert_validity(ca),
- certificate_renewal_update(ca, ds),
+ certificate_renewal_update(ca, ds, http),
ca_enable_pkix(ca),
ca_configure_profiles_acl(ca),
])