diff --git a/product/ERP5/Tool/CertificateAuthorityTool.py b/product/ERP5/Tool/CertificateAuthorityTool.py index c7eb5c5d4be31444b9f2bfa5bf9a309bd43416f2..258deb084bbf101cc3dea31a780f36a0164bb714 100644 --- a/product/ERP5/Tool/CertificateAuthorityTool.py +++ b/product/ERP5/Tool/CertificateAuthorityTool.py @@ -186,6 +186,13 @@ class CertificateAuthorityTool(BaseTool): # {key, certificate, id, common_name} if not common_name: raise ValueError("Invalid common name: %r" % common_name) + + index = open(self.index).read().splitlines() + valid_line_list = [q for q in index if q.startswith('V') and + ('CN=%s/' % common_name in q)] + if len(valid_line_list) >= 1: + raise ValueError('The common name %r already has a certificate' + 'please revoke it before request a new one..' % common_name) self._checkCertificateAuthority() self._lockCertificateAuthority() try: