docs: def _makeCertificate(key, email, _utcnow=datetime.utcnow):
      """Make the certificate for the client using the given key and e-mail
      address.
  
      """
      # Create a certificate for this key.
      cert = X509()
      cert.set_pubkey(key)
  
      # Set the subject.
      subject = cert.get_subject()
      subject.CN = u"Crypto 101 Client"
      subject.emailAddress = email
  
      # Expiration dates. Mandatory.
      now = _utcnow()
      start = now.replace(hour=0, minute=0, second=0)
      cert.set_notBefore(start.strftime(_ASN1_GENERALIZEDTIME_FORMAT))
      end = start.replace(year=start.year + 5)
      cert.set_notAfter(end.strftime(_ASN1_GENERALIZEDTIME_FORMAT))
  
      # Self-sign.
      cert.set_issuer(cert.get_subject())
      cert.sign(key, "sha512")
  
      return cert