def generate_tls_certificate()

in marketplace/deployer_util/property_generator.py [0:0]


def generate_tls_certificate():
  """Generate TLS value, a json string."""
  cert_seconds_to_expiry = 60 * 60 * 24 * 365  # one year

  key = OpenSSL.crypto.PKey()
  key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)

  cert = OpenSSL.crypto.X509()
  cert.get_subject().OU = 'GCP Marketplace K8s App Tools'
  cert.get_subject().CN = 'Temporary Certificate'
  cert.gmtime_adj_notBefore(0)
  cert.gmtime_adj_notAfter(cert_seconds_to_expiry)
  cert.set_serial_number(random.getrandbits(64))
  cert.set_issuer(cert.get_subject())
  cert.set_pubkey(key)
  cert.sign(key, 'sha256')

  return json.dumps({
      'private_key':
          OpenSSL.crypto.dump_privatekey(OpenSSL.crypto.FILETYPE_PEM,
                                         key).decode('ascii'),
      'certificate':
          OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM,
                                          cert).decode('ascii')
  })