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: