code: func (s *ProviderServer) Present(domain, token, keyAuth string) error {
  	if s.port == "" {
  		// Fallback to port 443 if the port was not provided.
  		s.port = defaultTLSPort
  	}
  
  	// Generate the challenge certificate using the provided keyAuth and domain.
  	cert, err := ChallengeCert(domain, keyAuth)
  	if err != nil {
  		return err
  	}
  
  	// Place the generated certificate with the extension into the TLS config
  	// so that it can serve the correct details.
  	tlsConf := new(tls.Config)
  	tlsConf.Certificates = []tls.Certificate{*cert}
  
  	// We must set that the `acme-tls/1` application level protocol is supported
  	// so that the protocol negotiation can succeed. Reference:
  	// https://tools.ietf.org/html/draft-ietf-acme-tls-alpn-01#section-5.2
  	tlsConf.NextProtos = []string{ACMETLS1Protocol}
  
  	// Create the listener with the created tls.Config.
  	s.listener, err = tls.Listen("tcp", s.GetAddress(), tlsConf)
  	if err != nil {
  		return fmt.Errorf("could not start HTTPS server for challenge -> %v", err)
  	}
  
  	// Shut the server down when we're finished.
  	go func() {
  		err := http.Serve(s.listener, nil)
  		if err != nil && !strings.Contains(err.Error(), "use of closed network connection") {
  			log.Println(err)
  		}
  	}()
  
  	return nil
  }
docs: // Present generates a certificate with a SHA-256 digest of the keyAuth provided
  // as the acmeValidation-v1 extension value to conform to the ACME-TLS-ALPN spec.