X-Git-Url: https://pwan.org/git/?a=blobdiff_plain;ds=sidebyside;f=certmaster%2Fcertmaster.py;h=e4a3d17e927ea25dd2663cc82f5f84158944c599;hb=c95655b5cb63caf9428898c56ef5cb26d118a678;hp=74313249f2a07cca82188309ad9e87215a4aea29;hpb=1c44d82bc9270466521e8c8d5339d0213935f385;p=certmaster.git diff --git a/certmaster/certmaster.py b/certmaster/certmaster.py index 7431324..e4a3d17 100755 --- a/certmaster/certmaster.py +++ b/certmaster/certmaster.py @@ -106,7 +106,7 @@ class CertMaster(object): requesting_host = self._sanitize_cn(csrreq.get_subject().CN) if with_triggers: - self._run_triggers(None, '/var/lib/certmaster/triggers/request/pre/*') + self._run_triggers(requesting_host, '/var/lib/certmaster/triggers/request/pre/*') self.logger.info("%s requested signing of cert %s" % (requesting_host,csrreq.get_subject().CN)) # get rid of dodgy characters in the filename we're about to make @@ -140,7 +140,7 @@ class CertMaster(object): cert_buf = crypto.dump_certificate(crypto.FILETYPE_PEM, slavecert) cacert_buf = crypto.dump_certificate(crypto.FILETYPE_PEM, self.cacert) if with_triggers: - self._run_triggers(None,'/var/lib/certmaster/triggers/request/post/*') + self._run_triggers(requesting_host,'/var/lib/certmaster/triggers/request/post/*') return True, cert_buf, cacert_buf # if we don't have a cert then: @@ -192,13 +192,13 @@ class CertMaster(object): print 'No match for %s to clean up' % hn return if with_triggers: - self._run_triggers(None,'/var/lib/certmaster/triggers/remove/pre/*') + self._run_triggers(hn,'/var/lib/certmaster/triggers/remove/pre/*') for fn in csrs + certs: print 'Cleaning out %s for host matching %s' % (fn, hn) self.logger.info('Cleaning out %s for host matching %s' % (fn, hn)) os.unlink(fn) if with_triggers: - self._run_triggers(None,'/var/lib/certmaster/triggers/remove/post/*') + self._run_triggers(hn,'/var/lib/certmaster/triggers/remove/post/*') def sign_this_csr(self, csr, with_triggers=True): """returns the path to the signed cert file""" @@ -228,11 +228,12 @@ class CertMaster(object): else: # assume we got a bare csr req csrreq = csr + + requesting_host = self._sanitize_cn(csrreq.get_subject().CN) if with_triggers: - self._run_triggers(None,'/var/lib/certmaster/triggers/sign/pre/*') + self._run_triggers(requesting_host,'/var/lib/certmaster/triggers/sign/pre/*') - requesting_host = self._sanitize_cn(csrreq.get_subject().CN) certfile = '%s/%s.cert' % (self.cfg.certroot, requesting_host) self.logger.info("Signing for csr %s requested" % certfile) thiscert = certs.create_slave_certificate(csrreq, self.cakey, self.cacert, self.cfg.cadir) @@ -245,7 +246,7 @@ class CertMaster(object): self.logger.info("csr %s signed" % (certfile)) if with_triggers: - self._run_triggers(None,'/var/lib/certmaster/triggers/sign/post/*') + self._run_triggers(requesting_host,'/var/lib/certmaster/triggers/sign/post/*') if csr_unlink_file and os.path.exists(csr_unlink_file): @@ -310,7 +311,12 @@ def serve(xmlrpcinstance): """ - server = CertmasterXMLRPCServer((xmlrpcinstance.cfg.listen_addr, CERTMASTER_LISTEN_PORT)) + config = read_config(CERTMASTER_CONFIG, CMConfig) + listen_addr = config.listen_addr + listen_port = config.listen_port + if listen_port == '': + listen_port = CERTMASTER_LISTEN_PORT + server = CertmasterXMLRPCServer((listen_addr,listen_port)) server.logRequests = 0 # don't print stuff to console server.register_instance(xmlrpcinstance) xmlrpcinstance.logger.info("certmaster started")