docs: def create_signed_pair(self, name, ca_name, cert_type=crypto.TYPE_RSA,
                             bits=2048, years=5, alt_names=None, serial=0,
                             overwrite=False):
          """
          Create a key-cert pair
  
          Arguments: name     - The name of the key-cert pair
                     ca_name   - The name of the CA to sign this cert
                     cert_type - The type of the cert. TYPE_RSA or TYPE_DSA
                     bits     - The number of bits to use
                     alt_names - An array of alternative names in the format:
                                 IP:address, DNS:address
          Returns:   KeyCertPair for the new signed pair
          """
  
          key = self.create_key_pair(cert_type, bits)
          req = self.create_request(key, CN=name)
          extensions = [
              crypto.X509Extension(
                  b"extendedKeyUsage", True, b"serverAuth, clientAuth"),
          ]
  
          if alt_names:
              extensions.append(
                  crypto.X509Extension(b"subjectAltName",
                                       False, ",".join(alt_names).encode())
              )
  
          ca_bundle = self.store.get_files(ca_name)
          cacert = ca_bundle.cert.load()
          cakey = ca_bundle.key.load()
  
          cert = self.sign(req, (cacert, cakey), (0, 60*60*24*365*years),
                           extensions=extensions)
  
          x509s = {'key': key, 'cert': cert, 'ca': None}
          self.store.add_files(name, x509s, parent_ca=ca_name,
                               overwrite=overwrite)
  
          # Relate these certs as being parent and child
          self.store.add_sign_link(ca_name, name)
          return self.store.get_record(name)