Changeset 1192
- Timestamp:
- 12/13/06 10:43:13 (6 years ago)
- File:
-
- 1 edited
-
ccsd/trunk/crcnetd/_utils/ccsd_ca.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ccsd/trunk/crcnetd/_utils/ccsd_ca.py
r1125 r1192 660 660 log_info("CA: %s" % message) 661 661 662 def ensureCertificateExists(self, name): 663 certname = "%s-cert.pem" % name 664 keyname = "%s-key.pem" % name 665 reqname = "%s-req.pem" % name 666 if self.hasfile(certname) and self.hasfile(keyname): 667 return True 668 # No cert/key in repository 669 log_info("Creating certificate for %s" % name) 670 sParams = self.getCAParameters().copy() 671 sParams["CN"] = name 672 sParams["emailAddress"] = "root@%s" % \ 673 config_get_required("network", "domain") 674 # Generate the new key / request 675 (csr, key) = createKey(0, sParams) 676 # Get it signed 677 cert = self.signReq(csr) 678 # Add it to the repository for safe-keeping 679 try: 680 a = self.addfile(certname, cert) 681 b = self.addfile(keyname, key) 682 c = self.addfile(reqname, csr) 683 self.checkin("Added %s certificate and key" % name, [a, b, c]) 684 return True 685 except ccs_ca_error: 686 (type, value, tb) = sys.exc_info() 687 log_error("CA: Failed to create key for %s: %s" % \ 688 (name, value), (type, value, tb)) 689 690 return False 691 662 692 def findByCN(self, desiredCN): 663 693 """Searches the certificate database for records with matching CNs""" … … 748 778 log_fatal("CA: Unable to initialise: %s" % value, \ 749 779 (type, value, tb)) 750 751 # Setup the default parameters for new certificates752 certParams = ca.getCAParameters()753 780 754 781 # Ensure there is a server key, and a client key for the web interface 755 782 # and the pxeboot scripts 756 783 for name in ["server", "ccsweb", "pxe-scripts"]: 757 certname = "%s-cert.pem" % name 758 keyname = "%s-key.pem" % name 759 reqname = "%s-req.pem" % name 760 if ca.hasfile(certname) and ca.hasfile(keyname): 761 continue 762 # No cert/key in repository 763 log_info("Creating certificate for %s" % name) 764 sParams = certParams.copy() 765 sParams["CN"] = name 766 sParams["emailAddress"] = "root@%s" % \ 767 config_get_required("network", "domain") 768 # Generate the new key / request 769 (csr, key) = createKey(0, sParams) 770 # Get it signed 771 cert = ca.signReq(csr) 772 # Add it to the repository for safe-keeping 773 try: 774 a = ca.addfile(certname, cert) 775 b = ca.addfile(keyname, key) 776 c = ca.addfile(reqname, csr) 777 ca.checkin("Added %s certificate and key" % name, [a, b, c]) 778 except ccs_ca_error: 779 (type, value, tb) = sys.exc_info() 780 log_fatal("CA: Failed to create key for %s: %s" % \ 781 (name, value), (type, value, tb)) 782 784 if not ca.ensureCertificateExists(name): 785 log_fatal("CA: %s is a required key. Exiting!" % name) 786
Note: See TracChangeset
for help on using the changeset viewer.
